时时商务社区
标题:
PHP中返回引用类型的方法
[打印本页]
作者:
网络通达
时间:
2018-2-14 05:47
返回引用,在定义和调用的时候 & 都不可以省略。
这是个比较容易混淆的概念,如果不是出于某些特殊的原因,建议还是不要使用。
说他很容易混,是因为 Reference 在 PHP5 中的变化,造成其在 PHP4/PHP5 中表现的行为差异比较大。
举个例子说明:
[U]复制代码[/U] 代码如下:
运行一遍上面的代码,差不多就明白了,使用 &getRef() 将把 $colorRef 绑定到 $color 上面,也就是说 $colorRef 和 $color 两个变量是指向同一个值了。当改变其中一个值时,另一个也会跟着变化。
如果 $color 是一个数组,也是一样的,上面的代码在 PHP4/5 的任意版本中,表现行为都是一样的。
当 $color 是一个 Object 的时候,问题就出现了。
PHP4 中 getCopy 仍然会返回一个复制的 Object;&getRef() 返回引用。
PHP5 中就有点另类了,
最新的 PHP5.2,行为和 PHP4 一样,getCopy() 返回复制,&getRef() 返回引用。
但是某些的 PHP5 的版本这里稍微有些不同,比如 PHP5.1.6,表现为 getCopy() 和 &getRef() 都是引用。
这里 getCopy() 和 &getRef() 是两个全局函数,如果放到类里面成为类的 Member functions,那又会是另外一番景象……
PS:返回 References 并不会提高性能,有时候反而降低性能,所以不要想当然的使用这个特性来“优化”程序。
有问题看看手册大部分时候都可以找到答案:
http://cn.php.net/manual/en/language.references.php
您可能感兴趣的文章:
php 传值赋值与引用赋值的区别
通过5个php实例细致说明传值与传引用的区别
php引用传值实例详解学习
PHP引用(&)各种使用方法实例详解
PHP、Nginx、Apache中禁止网页被iframe引用的方法
PHP的引用详解
PHP如何通过传引用的思想实现无限分类(代码简单)
php5.4传引用时报错问题分析
PHP引用的调用方法分析
php函数传值的引用传递注意事项分析
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2