博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php引用变量
阅读量:5227 次
发布时间:2019-06-14

本文共 785 字,大约阅读时间需要 2 分钟。

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

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

定义方式:使用&符号

工作原理:

";//定义变量b,将a变量的值赋值给b,遵循写时改变(copy on write)的原则$b = $a;var_dump(memory_get_usage());echo "
";//对a进行修改$a = range(0,100);var_dump(memory_get_usage());?>

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

";//定义变量b,将a变量的值赋值给b,遵循写时改变(copy on write)的原则$b = &$a; //改为引用复制,此时a和b永远指向同一个空间,而不会复制var_dump(memory_get_usage());echo "
";//对a进行修改$a = range(0,100);var_dump(memory_get_usage());?>

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

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

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

name = "xiaolinzi";?>

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

 

转载于:https://www.cnblogs.com/xlzfdddd/p/9889979.html

你可能感兴趣的文章
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
Python 面向对象(其四)
查看>>
客户端访问浏览器的流程
查看>>
Linux——ls
查看>>
操作系统(八) 死锁
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
表变量与临时表的优缺点(转)
查看>>
shell脚本图书
查看>>
UNIX环境高级编程——线程限制
查看>>
UNIX网络编程——原始套接字SOCK_RAW
查看>>
TCP发送源码学习(1)--tcp_sendmsg
查看>>
使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?...
查看>>
python-三级菜单和购物车程序
查看>>