(PHP学习笔记)我对PHP变量引用、对象引用的理解-创新互联

变量引用

创新互联公司专注于企业成都营销网站建设、网站重做改版、枣庄网站定制设计、自适应品牌网站建设、html5成都做商城网站、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为枣庄等各大城市提供网站开发制作服务。

        我们可以知道在PHP中,变量以 $ 符号开头,其后是变量的名称。变量可以对一个内容进行引用,PHP 的引用允许你用两个变量来指向同一个内容 。

        示例代码如下:

        输出结果:

$a = 1;  $b = 1; $a = 1;  $b = 2;

        $a将值赋给了$b,拷贝一份右边的变量给b,会生成一份内存空间,结果可能是同样的内容在内存中两份。此时变量a与变量b同时指向同一个内容“1”,所以输出结果均为“1”。当“$b = 2”语句执行时,将变量b改成指向了内容“2”,原变量a并无影响,只是变量b的指向发生了改变,所以输出结果变量a无变化,变量b为“2”。

         下面来看另一种情况,示例代码如下:

        输出结果:

$c = 1;  $b = 1; $c = 2;  $b = 2;

    $c将值赋给了$d的时候,加上了“&”符号,符号"&"表示引用。使用引用,php引擎不会拷贝一份变量,其实就是将指针指向了$a在内存中的地址,$b中就是保存了这个指针。对它们中的任意一个进行修改都会影响到其他变量,而删除其中的一个变量,其他都会被作用到。

对象引用

在说明对象的引用的时候,先插入一个概念(析构函数):析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,释放对象所占用的内存。下面来看看示例代码:

情况1:

name; echo $c->name; $b->name = "Bob";  echo $c->name; $b = null ; $c = null ;    //此时调用析构函数 ?>

    输出结果:

Jam      Jam     Bob

    情况2:

name; echo $c->name; $b->name = "Bob";  echo $c->name; $b = null ;    //此时调用析构函数 ?>

  输出结果:

Jam      Jam     Bob

        从情况1可以看出,$b 和 $c都可以调用函数A中的属性,它们当中某一方都可以对属性内容进行更改,在$b和$c都为空的时候,即没有变量在引用对象了,此时会调用析构函数。在情况2中,在变量赋值时加入了&符号,意为复制出一个$c等同与$b,两者为相等的关系。当其中一方为空时,另一方也会为空,此时调用析构函数。

        

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:(PHP学习笔记)我对PHP变量引用、对象引用的理解-创新互联
网站地址:http://pwwzsj.com/article/doeddg.html