1

这不是重复的,请仔细阅读问题
这是关于当参数被标记为引用时按值传递的可能性。


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

例如:

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?

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

4

1 回答 1

2

您的第二个示例给出了严格的标准警告:

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

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

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

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

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

于 2013-04-11T22:11:21.730 回答