赋值:PHP多变量指向同一引用的优缺点是什么
【小编提示】本文部分内容收集整理于互联网,不代表YINGSOO观点!若有咨询“PHP多变量指向同一引用的优缺点是什么”等有关服务器、云主机租用、托管、配置、价格问题,请咨询YINGSOO客服,获取最新优惠!
【产品上新】俄罗斯物理服务器促销 | 印度尼西亚云服务器促销 | 美国云服务器促销
【常见问答】服务器托管是什么?和租用有什么区别?
这篇文章主要讲解了“PHP多变量指向同一引用的优缺点是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。本文实例讲述了php 多个变量指向同一个引用($b = &$a)用法。分享给大家供大家参考,具体如下:
引用是什么?
引用就是多个变量指向同一个内存区域地址。如我们经常用的实例一个类,就是内存中开辟了一个区域存储实例的类,实例赋值给变量就是让这个变量指向这个内存区域。
多个变量指向同一个引用有什么好处?
节约了内存空间,多个变量指向同一个内存地址,在调用的时候多个变量都是指向的同一个内存地址。
多个变量指向同一个引用的缺点
要注意使用安全,即是由于多个变量都是指向的同一个内存地址,其中一个变量更改了某个属性,其它的变量调用的时候都是用的已经更改的实例。
在php 中我们为一个变量赋值的时候会在内存中开辟一个区域存储该值。那么我们将这个变量赋值给另一个变量的时候会在内存中重新开辟一个区域去存储改值吗? 我做了如下实验
";$d = "bbb";echo $c . "
"; /** * 执行结果是 * aaa * aaa */?>
看到这里 不知道你理解了没有,创建的变量$d 并为之赋初始值aaa 再将$d 赋值给$c,之后输出$c 然后更改$d的值,在输出$c。这个实验告诉我们,$d再给$c赋值的时候是在内存中重新开辟了一个区域的。
那么,我们怎么才能让$d和$c 都指向一个引用呢? 查了下资料 如下方法 让两个变量指向同一个内存地址
";$a = "456";echo $b; /** * 运行结果如下 * 123 * 456 */?>
我更改了一下变量的名字。方便测试发现区别。在这里我们可以看到 $b=&$a 其中&符号的作用就是让$b 指向的是$a的内存区域,而不是重新开辟一个区域。所以当更改$a的值的时候$b也会随着变化。
前面我们实验的对象是基本字符串,现在我们来看下类是否遵从这个规则
demo . "
";$demo1->demo = "bbbb";echo $demo2->demo . "
"; /** * 运行结果 * aaaa * bbbb */?>
我这里并没有&符号指定$demo2必须指向$demo1 的内存区域,所以关于类,当一个实例变量赋值给另一个变量的时候默认就是两个变量指向同一个引用;
php 的引用我觉得没有 java的好用,也许是这门语言本身还在发展,很多处理还没有那么方便完善。 java初去基本数据类型(int、long、byte、short、char、boolean、float、double等),两个变量赋值都是指向同一个内存地址,而且不用你特意去指定。
上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"PHP多变量指向同一引用的优缺点是什么"的内容,大家可以关注本公司的其它相关文章。
YINGSOO的海外高防服务器产品线,覆盖了美国、香港、韩国、日本四大节点,机房配备200G NP万M防火墙集群设备+黑洞牵引防火墙,确保机房网络安全,官网可以直接购买100G以内的本地清洗配置,如需更大的防御配置可以咨询客服小姐姐(YINGSOOAnn - 客服企业QQ:3002717765)
热搜词条:【视频编码系统运行服务器配置要求】【流媒体应用或网站可能会导致】【1m和2m带宽 服务器】【RHEL8设置机器名别名】【ip被墙多久恢复】【国外dns地址哪个最快】【iplc美国】【亚马逊服务器攻击】【局域网架设宝塔LNMP】【kt云电脑】【国内cdn 免费】【做外贸如何防止IP被墙】【带宽CN2线路 1m】【香港ip地址访问不了】【vps被入侵的解决办法】【宽带无法访问香港服务器】【如何让局域网内的服务器重启】【obs一直显示断开连接是为什么】【dnf 安装 mssql】【两会被墙】【私人云盘用途】【南昌服务器托管】【云主机 地区选择】【抢票软件服务器】【现场直播系统】【账号群组】【SAS服务器硬盘 挑选】【国外性价比高的vps】【5000人app需要多少带宽】【
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。