ITPub博客

首页 > IT职业 > IT职场 > PHP面向对象之&引用

PHP面向对象之&引用

IT职场 作者:lanyu 时间:2021-09-09 09:32:54 0 删除 编辑

PHP中,可以引用的有变量,函数,对象。引用符号统一用&。 
引用,实际上就是用不同的名字访问同一个变量内容。引用不是指针,不指向实际的内存。 
PHP中的引用并不是通常意义的引用,并不是指针,就行PHP中的重载并不是真正的重载一样!!! 
链接:http://php.net/manual/zh/language.references.php

1.变量引用

指多个变量名指向同一个变量,每次改动都影响其他指向此位置的变量。

变量引用的一个常见用法是引用传递,将实参的引用传到方法中,从而实现在方法中改变原数据。 
注意在函数调用时没有引用符号——只有函数定义中有。

2.函数的引用返回

当函数有返回值时,可以通过函数引用的形式,在函数外部更改函数的返回值。可以认为是将函数返回值所占用的内存引用传递给函数外部的变量,使两个变量表示同一块内存。 
函数的引用返回,就是将函数的返回值当做引用。

$a = f();改变$a并不会影响函数f()的返回值,但是$a = &f();在改变$a时同时影响函数f()的返回值。

3.对象引用

PHP中,对象的复制默认就是通过引用传递来实现,$o2 = $o1执行时,实际就是将$o1的引用复制给$o2,两个对象实际上是同一个。

对象复制

参考:http://php.net/manual/zh/language.oop5.cloning.php

如果我们想创建对象的副本,需要使用clone关键字(这将调用对象的 __clone()方法)。对象中的 __clone() 方法不能被直接调用。

当用 clone 复制对象后,PHP 5 会对对象的所有属性执行一个浅复制(shallow copy)。所有的基本属性会复制到新的存储空间,但是引用属性仍然会是一个指向原来的变量的引用。可以在要复制的对象中自定义 __clone() 方法,复制对象完成后会自动调用 __clone() 方法,可用于修改属性的值。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2035/viewspace-2804570/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 我也想写博客了
请登录后发表评论 登录
全部评论

注册时间:2019-07-29

  • 博文量
    96
  • 访问量
    7366