【问题标题】:Passing the return of a function as a parameter by reference in PHP?在PHP中通过引用将函数的返回作为参数传递?
【发布时间】:2013-04-04 06:57:23
【问题描述】:

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


在 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?

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

【问题讨论】:

  • 不,绝对不是重复的。问题不在于& 符号是什么,而是一个更深层次的问题。

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


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2013-09-20
    • 2021-12-11
    • 2020-11-27
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多