有没有一种方法可以知道函数是否返回到PHP中的变量


Is there a way to know if a function is returning to a variable in PHP?

我想知道PHP中是否有一种方法可以知道刚刚被调用的函数是否会向变量返回一些东西。

例如,有没有一种方法可以知道这种情况何时发生:

  1. $foo = bar();//是,它将返回到一个变量
  2. bar();//否,不会返回到变量

最好是在bar()函数中有一种方法可以知道这一点。如果不存在这样的东西,有可能实施吗?

我目前不需要这样做,但一个简单的用例是:

class Model() {
    private $foo = 0;
    function bar() {
        $foo += 100;
        if(returnsToVariable) // <====
            return $foo;
    }
}

因此,它可以用来获得$foo的即时值(是的,我知道我可以/必须使用setter,这只是一个说明性的例子)。

提前谢谢。

只需以适当的方式使用此函数即可。当您将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;