手机版

PHP变量值赋值和引用赋值变量销毁的详细说明

时间:2021-08-26 来源:互联网 编辑:宝哥软件园 浏览:

这个例子分享了PHP变量值赋值和引用赋值变量销毁的具体代码,供大家参考。具体内容如下

?php $ a=100$ b=200var_dump($a,$ b);//int(100) int(200)?在php中,上面的代码和变量是如何存储的?

在上面的代码更改下,当变量b被分配给变量a时会发生什么?

?php $ a=100$ b=200$ a=$ b;/*有这个*/var_dump($a,$ b);//int(200) int(200)?问题来了,$a=$b,那么把变量a的指针指向变量b的指针所指向的位置?还是变量a指向的位置的值变了?

引用赋值不同于上面的值赋值。引用赋值指的是指向一个地方的两个变量。一旦发生这种情况,将会进行所有的更改。

如何参考作业?在它前面加上变量名,

$ a=$ b;

这样,变量a不仅被赋予了变量b的值,还被赋予了变量b的地址,变量a和变量b共同指向一个地址。

?php $ a=100$ b=200$ a=$ b;var_dump($a,$ b);//int(200) int(200) /*变量b被引用并赋给变量a后,ab指向同一个地址,地址的变化如下:*/$ a=500;var_dump($a,$ b);//int(500) int(500)从一个变化到另一个变化,$ b=700var_dump($a,$ b);//int(700) int(700)所有更改?

?Php/*理解以下单词*/$ a=100;//变量a对int100,100的赋值是基本数据类型,不是变量,而是变量指向的$ a=$ b;//变量b的值赋给变量a,变量a和b各有千秋。执行之后,各有千秋。$ a=$ b;//变量b的值的地址赋给变量a,变量a和b共享同一个地址!改变一切!Unset()用于销毁php/*php中的变量,但往往unset()只销毁变量,存储在内存中的变量的值仍未销毁,即未能达到释放内存的预期效果。在这里,可以使用变量=null的方法来释放它的内存。unset也会释放内存。1.当变量值占用的空间超过255字节时,unset(变量)将释放内存。2.只有当指向这个值的所有变量都被销毁时,地址才会被释放(例如,$a,$b都指向这个值,只有unset($ a);未被释放,$b仍正常存在)(也执行判决1)*/$ a=200;$ b=$ a;联合国索赔集(美元);var_dump($a,$ b);//NULL int(100)?上面的代码,当执行到unset($a)时,断开变量a的指向,同时将变量a抛出花名册。从下图可以看出,它对变量b没有影响。

但是,如果使用$ a=null以这种方式销毁变量时,会产生以下效果:

?php $ a=100$ b=$ a;$ a=nullvar_dump($a,$ b);//NULL NULL?这样,内存被释放,但共享相同地址的另一个变量也会受到影响。

看看这两种方法在数组上的应用:

?php $aaa=array('a'=1,' b '=2);unset($ AAA[' a ']);print _ r($ AAA);//Array ([b]=2),unset,数组中此项不存在$bbb=array('a'=1,' b '=2);$ BBB[' a ']=null;print _ r($ BBB);//Array ([a]=[b]=2),use=null,数组中的此项仍然存在,但为空?以上就是边肖介绍的PHP变量值赋值和引用赋值变量销毁的详细讲解和集成,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:PHP变量值赋值和引用赋值变量销毁的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐