这不是重复,请仔细阅读问题
当参数被标记为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?
为什么可以这样做?
它的用途是什么?
答案 0 :(得分:2)
你的第二个例子给出了严格的标准警告:
Strict Standards: Only variables should be passed by reference in X on line Y
我认为这是为了向后兼容,因为之前没有产生任何警告:
$last = end( explode( ',', $csv_string));
因此,为了不破坏该代码,您的示例会发出警告,但仍在继续。甚至PHP manual也指出:
不应该通过引用传递其他表达式,因为结果是未定义的。