php 引用返回
例1
class foo { public $val = 42; public function &getValue(){ return $this->val; } } $obj = new foo(); $myVlal = &$obj->getValue(); $obj->val = 2; echo $myVlal;
例2
function &func(){ static $foo=0; $foo++; return $foo; } $var1 = & func(); // 1 echo $var1; // 1 func(); // 1 func(); // 2 echo $var1; // 3 $var2 = func(); // 3 echo $var2; // ++3=4 func(); // 4 func(); // 5 echo $var2; // 4
通过测试可以看出
引用类得变量,只能通过函数的形式引用返回
ps: 如果试图这样从函数返回引用:return ($this->value);,这将不会起作用,因为在试图返回一个表达式的结果而不是一个引用的变量。只能从函数返回引用变量——没别的方法。如果代码试图返回一个动态表达式或 new 运算符的结果,自 PHP 4.4.0 和 PHP 5.1.0 起会发出一条 E_NOTICE 错误。
引用即会引用它的内存空间,当被引用的变量执行了,同时将执行原变量操作
普通的只是作为copy形式存在
本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: May 4, 2019 at 11:38 am