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的值也改變了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章