1. 程式人生 > >PHP:物件賦值的原理

PHP:物件賦值的原理

題目

閱讀下面PHP程式碼,並選擇輸出結果( )

<?php 
class A{
    public $num=100; 
}
$a = new A();
$b = $a;
$a->num=200;
echo $b->num;
?>
  1. 100
  2. 200
  3. 沒有輸出
  4. 程式報錯!

答案是2.

解析

在PHP中,基本型別變數放在棧中,物件、陣列放在堆中,物件中真正的內容是存在堆中,aa只是存放了該物件在堆中的地址,將a 賦給b,b,只是把對應的地址給了他,即a、b

b都存放了物件在堆中的地址,所以b->num和$a->num訪問的是同一份資料。

關注我: