Php 需要知道magic _call()请求是否期望返回结果

Php 需要知道magic _call()请求是否期望返回结果,php,Php,本质上,我想在以下两个场景中实施不同的行为 <?php $foo = Bar(); echo $foo->baz(1); $foo->baz(1); 好吧,我不明白你想要实现什么(换句话说,“我想以不同的方式处理echo$foo->baz(1)”的确切含义)。但是,如果您需要知道$foo->baz(…)的结果是否得到了响应,您可以编写baz()方法来返回实现\uu toString()方法的对象,您可以在其中执行繁重的奇怪魔法…不,没有。函数和方法无法知道是从表达式中运行还是

本质上,我想在以下两个场景中实施不同的行为

<?php
$foo = Bar();
echo $foo->baz(1);
$foo->baz(1);

好吧,我不明白你想要实现什么(换句话说,“我想以不同的方式处理
echo$foo->baz(1)
”的确切含义)。但是,如果您需要知道
$foo->baz(…)
的结果是否得到了响应,您可以编写
baz()
方法来返回实现
\uu toString()
方法的对象,您可以在其中执行繁重的奇怪魔法…

不,没有。函数和方法无法知道是从表达式中运行还是从as语句中运行。因为函数调用语句本身就是无效的表达式,常规方法和函数无法做到这一点。你凭什么认为这会奏效?此外,一个根据调用方式表现不同的方法有一种糟糕的代码味道。你所提出的想法从根本上说是不合理的。你能告诉我们你是如何看待PHP的pl/sql的吗?你就不能让胶水代码在调用时根据需要丢弃返回值吗?@NullUserException:基本上我同意。但是,在这种情况下,它在功能上很重要,因为调用最终连接到PL/SQL,而PL/SQL关心是否需要返回值。@Charles:当然。我们正在构建一种到数据库表的ORM映射。例如,如果我们有一个名为Toll_Free的类,那么超类知道如何自动调用具有表上插入、更新和删除所有逻辑的特定包。在PL/SQL中,我们还希望有一个名为TOLL\u FREE的类型,该类型将有特定于此表的方法,例如CHANGE\u ACCOUNT。有些方法是过程,有些是函数,然后可以是静态或实例方法。我希望这足够清楚。