我想知道PHP中是否有办法知道刚被调用的函数是否会将某些内容返回给变量(或不是)。
例如,有没有办法知道这种情况何时发生:
$foo = bar();
//是的,它会返回变量bar();
//不,它不会返回变量如果有一种方法可以在bar()函数中知道它,那将是最好的。如果不存在这样的情况 - 是否可以实施?
我目前不需要这样做,但一个简单的用例是:
class Model() {
private $foo = 0;
function bar() {
$foo += 100;
if(returnsToVariable) // <====
return $foo;
}
}
所以它可以用来获得$ foo的立即值(是的,我知道我可以/不得不使用setter,这只是一个说明性的例子)。
提前致谢。
答案 0 :(得分:2)
只需以适当的方式使用此功能。如果您将returnToVariable
设置为常量,而不是希望返回某些内容,则不会返回任何值,而$foo = bar()
将为NULL
。
class Model() {
private $foo = 0;
function bar($return = false) {
$this->foo += 100;
if($return)
return $this->foo;
}
}
$model = new Model();
$model->bar(); //$model->foo == 100
$foo = $model->bar(true); //$model->foo == $foo == 200
$foo = $model->bar(); //$model->foo == 200; $foo == null;
$model->bar(true); //$model->foo == 300; $foo == null;