加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中返回引用类型的方法

发布时间:2020-12-13 02:32:43 所属栏目:PHP教程 来源:网络整理
导读:《:PHP中返回引用类型的方法》要点: 本文介绍了:PHP中返回引用类型的方法,希望对您有用。如果有疑问,可以联系我们。 返回引用,在定义和调用的时候 都不可以省略. PHP教程 这是个比较容易混淆的概念,如果不是出于某些特殊的原因,建议还是不要使用. PHP教

《:PHP中返回引用类型的方法》要点:
本文介绍了:PHP中返回引用类型的方法,希望对您有用。如果有疑问,可以联系我们。

返回引用,在定义和调用的时候 & 都不可以省略.PHP教程

这是个比较容易混淆的概念,如果不是出于某些特殊的原因,建议还是不要使用.PHP教程

说他很容易混,是因为 Reference 在 PHP5 中的变化,造成其在 PHP4/PHP5 中表现的行为差异比较大.PHP教程

举个例子说明:
PHP教程

代码如下:

<?php
?
$color = 'YellowGreen';
?
function &getRef() {
??? global $color;
??? return $color;
}
?
function getCopy() {
??? global $color;
??? return $color;
}
?
$colorRef = &getRef();
$colorRef = 'Blue';
?
//$colorCopy = getCopy();
//$colorCopy = 'Black';
?
?
var_dump($color);
var_dump($colorRef);
//var_dump($colorCopy);
?

运行一遍上面的代码,差不多就明白了,使用 &getRef() 将把 $colorRef 绑定到 $color 上面,也就是说 $colorRef 和 $color 两个变量是指向同一个值了.当改变其中一个值时,另一个也会跟着变化.PHP教程

如果 $color 是一个数组,也是一样的,上面的代码在 PHP4/5 的任意版本中,表现行为都是一样的.PHP教程

当 $color 是一个 Object 的时候,问题就出现了.PHP教程

PHP4 中 getCopy 仍然会返回一个复制的 Object;&getRef() 返回引用.PHP教程

PHP5 中就有点另类了,
最新的 PHP5.2,行为和 PHP4 一样,getCopy() 返回复制,&getRef() 返回引用.
但是某些的 PHP5 的版本这里稍微有些不同,比如 PHP5.1.6,表现为 getCopy() 和 &getRef() 都是引用.PHP教程

这里 getCopy() 和 &getRef() 是两个全局函数,如果放到类里面成为类的 Member functions,那又会是另外一番景象……PHP教程

PS:返回 References 并不会提高性能,有时候反而降低性能,所以不要想当然的使用这个特性来“优化”程序.PHP教程

有问题看看手册大部分时候都可以找到答案:PHP教程

http://cn.php.net/manual/en/language.references.phpPHP教程

《:PHP中返回引用类型的方法》是否对您有启发,欢迎查看更多与《:PHP中返回引用类型的方法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读