PHP:对象赋值的原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/finish_dream/article/details/82817104

题目

阅读下面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中,基本类型变量放在栈中,对象、数组放在堆中,对象中真正的内容是存在堆中, a a只是存放了该对象在堆中的地址,将 a 赋给 b , b,只是把对应的地址给了他,即 a、 b b都存放了对象在堆中的地址,所以 b->num和$a->num访问的是同一份数据。


关注我:

猜你喜欢

转载自blog.csdn.net/finish_dream/article/details/82817104
今日推荐