首页 > 作文

php 多个变量指向同一个引用($b = &$a)用法分析

更新时间:2023-04-08 05:46:41 阅读: 评论:0

本文实例讲述了php 多个变量指向同一个引用($b = &$a)用法。分享给大家供大家参考,具体如下:

引用是什么?
引用就是多个变量指向同一个内存区域地址。如我们经常用的实例一个类,就是内存中开辟了一个区域存储实例的类,实例赋值给变量就是让这个变量指向这个内存区域。

多个变量指向同一个引用有什么好处?
节约了内存空间,多个变量指向同一个内存地址,在调用的时候多个变量都是指向的同一个内存地址。

多个变量指向同一个引用的缺点
要注意使用安全,即是由于多个变量都是指向的同一个内存地址,其中一个变量更改了某个属性,其它的变量调用的时候都是用的已经更改的实例。

在php 中我们为一个变量赋值的时候会在内存中开辟一个区域存储该值。那么我们将这个变量赋值给泰戈尔英文诗另一个变量的时候会在内存中重新开辟一个区域去存储改值吗? 我做了如下实验

<?php$d = "aaa";$c = $d;echo $c . "<br />";$d = "bbb";echo $c . "<br />";/** * 执行结果是 * aaa * aaa */?>

看到这里 不知道你理解了没有,创建的变量$d 并为之赋初始值aaa 再将$d红头文件范本 赋值给$c,之后输出$c 然后更改$d的值,在输出$c。这个实验告诉我们,$d再给$c赋值的时候是在内存中重新开辟了一个区域的。

那么,我们怎么才能让$d和$c 都指向一个引用呢? 查了下资料 如下方法 让两个变量指向同一个内存地址

<?php$a = "123";$b = &$a;echo $b."<br />";$a = "456";echo $b;/** * 运行结果如下 * 123 * 456 */?>

我更改了一下变量什么是本科的名字。方便测试发现区别。在这里我们可以看到 $b=&$a 其中&符号的作用就是让$b 指向的是$a的内存区域,而不是重新开辟一个区域。所以当更改$a的值的时候$b也会随着变中秋节为什么吃月饼化。

前面我们实验的对象是基本字符串,现在我们来看下类是否遵从这个规则

<?phpclass demo{  public $demo = "aaaa";}$demo1 = new demo();$demo2 = $demo1;echo $demo2->demo . "<br />";$demo1->demo = "bbbb";echo $demo2->demo . "<br />";/** * 运行结果 * aaaa * bbbb */?>

我这里并没有&符号指定$demo2必须指向$demo1 的内存区域,所以关于类,当一个实例变量赋值给另一个变量的时候默认就是两个变量指向同一个引用;

php 的引用我觉得没有 java的好用,也许是这门语言本身还在发展,很多处理还没有那么方便完善。 java初去基本数据类型(int、long、byte、short、char、boolean、float、double等),两个变量赋值都是指向同一个内存地址,而且北京北京 歌词不用你特意去指定。

本文发布于:2023-04-08 05:46:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9522ff02fde5fd86b856c8d84fb17d90.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php 多个变量指向同一个引用($b = &$a)用法分析.doc

本文 PDF 下载地址:php 多个变量指向同一个引用($b = &$a)用法分析.pdf

标签:变量   内存   多个   赋值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图