在PHP中通过引用传递函数的返回值作为参数?

时间:2013-04-11 22:01:35

标签: php return-value pass-by-reference argument-passing

这不是重复,请仔细阅读问题
当参数被标记为by-reference时,它可以通过值传递。


在PHP中,您可以将函数的返回值作为by-reference参数传递给另一个函数。

例如:

function dummy(){}

function myFunc(&$var){ // argument by reference
    echo $var ;
}

myFunc('some value') ; // this line gives an error obviously, not a reference
myFunc(dummy('some value')) ; // but this one does not, why?

为什么可以这样做?
它的用途是什么?

1 个答案:

答案 0 :(得分:2)

你的第二个例子给出了严格的标准警告:

Strict Standards: Only variables should be passed by reference in X on line Y

我认为这是为了向后兼容,因为之前没有产生任何警告:

$last = end( explode( ',', $csv_string));

因此,为了不破坏该代码,您的示例会发出警告,但仍在继续。甚至PHP manual也指出:

  

不应该通过引用传递其他表达式,因为结果是未定义的。