分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

php引用变量

发布时间:2023-09-06 02:20责任编辑:蔡小小关键词:暂无标签

php引用变量的概念和定义方式

概念:在php中引用意味着不同的名字访问同一个变量内容。

定义方式:使用&符号

工作原理:

<?phpheader("content-type:text/html;charset=utf-8");//定义一个变量a$a = range(0,100);var_dump(memory_get_usage());//查看内存使用情况echo "</br>";//定义变量b,将a变量的值赋值给b,遵循写时改变(copy on write)的原则$b = $a;var_dump(memory_get_usage());echo "</br>";//对a进行修改$a = range(0,100);var_dump(memory_get_usage());?>

三次输出的内存使用情况分别为:int(144640) 、int(144688) 、int(153368),可知,由于遵循写时改变的原则,a指向了新的空间,故第三次打印内存占用时数值明显增大。

<?phpheader("content-type:text/html;charset=utf-8");//定义一个变量a$a = range(0,100);var_dump(memory_get_usage());//查看内存使用情况echo "</br>";//定义变量b,将a变量的值赋值给b,遵循写时改变(copy on write)的原则$b = &$a; //改为引用复制,此时a和b永远指向同一个空间,而不会复制var_dump(memory_get_usage());echo "</br>";//对a进行修改$a = range(0,100);var_dump(memory_get_usage());?>

此时,打印出来的结果分别为:int(144640) 、int(144688) 、int(144680),区别不大,由此可知,a和b还是指向同一空间,当对a进行修改时,就是对a和b共同指向的空间内容的修改。

需要指出的是,unset()函数只会取消引用,而不会销毁空间

<?phpheader("content-type:text/html;charset=utf-8");$a = 1;$b = &$a;unset($b);echo $a."\n"; //结果输出1?>

对象也遵循引用思想,而不是写时复制,例如:

<?phpheader("content-type:text/html;charset=utf-8");class Person{ ???public $name = "xiaolin";}$p1 = new Person();$p2 = $p1;$p2->name = "xiaolinzi";?>

在这个例子中,p1和p2同时指向同一个空间,若$p2->name改变,则是该空间的内容进行修改。

php引用变量

原文地址:https://www.cnblogs.com/xlzfdddd/p/9889979.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved