有没有办法知道函数是否返回PHP中的变量?

时间:2014-10-17 11:16:27

标签: php

我想知道PHP中是否有办法知道刚被调用的函数是否会将某些内容返回给变量(或不是)。

例如,有没有办法知道这种情况何时发生:

  1. $foo = bar(); //是的,它会返回变量
  2. bar(); //不,它不会返回变量
  3. 如果有一种方法可以在bar()函数中知道它,那将是最好的。如果不存在这样的情况 - 是否可以实施?

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

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

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

    提前致谢。

1 个答案:

答案 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;