扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎么在PHP中返回引用类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联-专业网站定制、快速模板网站建设、高性价比罗湖网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式罗湖网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖罗湖地区。费用合理售后完善,10余年实体公司更值得信赖。php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。
返回引用,在定义和调用的时候 & 都不可以省略。
这是个比较容易混淆的概念,如果不是出于某些特殊的原因,建议还是不要使用。
说他很容易混,是因为 Reference 在 PHP5 中的变化,造成其在 PHP4/PHP5 中表现的行为差异比较大。
举个例子说明:
复制代码 代码如下:
$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 两个变量是指向同一个值了。当改变其中一个值时,另一个也会跟着变化。
如果 $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 并不会提高性能,有时候反而降低性能,所以不要想当然的使用这个特性来“优化”程序。
看完上述内容,你们掌握怎么在PHP中返回引用类型的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流