在php6 开发者会议纪要中,我发现 PHP6 中不再存在 call-time-pass-by-reference 了。例如,以下两者对于 PHP6 都是不正确的:
<?php
$foo =& new StdClass();
?>
<?php
function &foo()
{
return new StdClass();
}
$f = foo();
?>
Run Code Online (Sandbox Code Playgroud)
如果我们不能在 PHP6 中使用这样的东西:
$foo =& new StdClass();
Run Code Online (Sandbox Code Playgroud)
有什么替代方案吗?有什么方法可以模仿吗?
编辑:
PHP6 中的变量怎么样,我们可以对变量这样做吗,例如:
$this->data =& $_SESSION;
Run Code Online (Sandbox Code Playgroud)
自 PHP5 起,对象始终通过引用传递,因此:
$foo =& new StdClass();
Run Code Online (Sandbox Code Playgroud)
是相同的:
$foo = new StdClass();
Run Code Online (Sandbox Code Playgroud)
。