开发者社区> 问答> 正文

php变量与对象的疑问,求解

`class a {}
for ($i=0; $i < 3; $i++) {

$a = new a;
var_dump($a);
echo "<br/>";

}`

输出结果:
object(a)#1 (0) { }
object(a)#2 (0) { }
object(a)#1 (0) { }

我想问为什么是 #1,#2,#1 呢?

展开
收起
落地花开啦 2016-06-16 17:16:59 1821 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    第一次运行 new a,新建了一个对象。
    第二次运行new a,又新建了一个对象。
    然后重新赋值给$a之后,第一个对象没用了,就回收了。
    然后回收留出来的坑,就留给第三次运行new a产生的对象。
    你可以实验下,加了 unset后就一致了

    `class a {}
    for ($i=0; $i < 3; $i++) {

    $a = new a;
    var_dump($a);
    echo "<br/>";
    unset($a);

    }
    `
    深入的话,可以找GC(Garbage collection)方面的资料。

    2019-07-17 19:41:27
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载