php对象在内存中的存在形式分析
借用代码分析对象在内存中的存储;
代码如下:
【php对象在内存中的存在形式分析】classPerson{
public$name;
public$age;
}
$a= newPerson();
$a->name = "小明";
$a->age=80;
$b=$a;
$b->age=85;
echo$b->name;
echo$a->age;
?>
输出结果为:小明 85
分析如下:
(1)$a对应内存地址,假设是0x123,($a和地址存放在栈区,相当于我们查字典时的索引);
(2)通过内存地址的索引,找到堆区。堆区里面存放着”小明“,”80“等数据
(3)$b= $a,实际上是将$a的内存地址0x123传给$b,堆区里的属性$name,$age不变,也就是不会再重新复制一份。所以,在改变$b->age=85时,$a->age的值也改变了。
文章图片
推荐阅读
- 布丽吉特,人生绝对的赢家
- 进必趋|进必趋 退必迟,问起对 视勿移
- 对称加密和非对称加密的区别
- 对抗抑郁最好的方法
- 装聋作哑,关系融洽
- 社保代缴公司服务费包含哪些
- thinkphp|thinkphp 3.2 如何调用第三方类库
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 数组常用方法一
- 幸福的婚姻不争对错!读《你要的是幸福还是对错》有感。