如果我尝试这段代码:
<?php
class ref
{
public $reff = "original ";
public function &get_reff()
{
return $this->reff;
}
public function get_reff2()
{
return $this->reff;
}
}
$thereffc = new ref;
$aa =& $thereffc->get_reff();
echo $aa;
$aa = " the changed value ";
echo $thereffc->get_reff(); // says "the changed value "
echo $thereffc->reff; // same thing
?>
然后通过引用返回,对象属性的值也会$reff
随着引用它的变量的$aa
变化而变化。
但是,当我在不在类内的普通函数上尝试此操作时,它将无法正常工作!
我试过这段代码:
<?php
function &foo()
{
$param = " the first <br>";
return $param;
}
$a = & foo();
$a = " the second <br>";
echo foo(); // just says "the first" !!!
看起来该函数foo()
无法识别它通过引用返回并顽固地返回它想要的东西!!!
通过引用返回是否仅在 OOP 上下文中有效?