object(Car)#3 (1)里的3是代表什么?

来源:2-10 PHP类和对象之对象的高级特性

Shawn_H

2016-07-04 18:32

object(Car)#3 (1)里的3是代表什么?

写回答 关注

4回答

  • _十月秋寻_
    2016-07-04 19:08:04
    已采纳

    应该是object类Car实例化对象的次数;

    比如var_dump当中,#后是2,它输出的是$b,$b是第二个实例化对象

    所以到了$c,#后面变成了3

  • 北方的郎n_n
    2016-11-10 08:55:57

    楼顶回答的不对,不是被实例化的次数。而是 对象的id. 就像数据库字段id,一样,每个对象都有自己的id.


    <?php
    
    
    class Car1 {
        public $name = 'car1 name';
        
       }
    class Car {
        public $name = 'car';
        
        public function __clone() {
            $obj = new Car();
            $obj->name = $this->name;
        }
    }
    
    $a = new Car();
    $a->name = 'new car';
    var_dump($a);
    
    $b = clone $a;
    var_dump($b);
    $c=new car1();
    var_dump($c);

    结果:

    object(Car)#1 (1) {
     ["name"]=>
     string(7) "new car"
    }
    object(Car)#2 (1) {
     ["name"]=>
     string(7) "new car"
    }
    object(Car1)#3 (1) {
     ["name"]=>
     string(9) "car1 name"
    }


    结果 car1  才被实例化了1次,他的 #后面变成了3...

  • _十月秋寻_
    2016-07-04 19:17:59

    你可以添加$d = clone ($c);

                    var_dump($d);

    可以看到,#号输出分别为2,4,3;印证了猜想

    Shawn_...

    恩恩啊,验证了一下,谢谢啦

    2016-07-04 19:19:55

    共 1 条回复 >

  • woody1
    2016-07-04 18:59:27

    不知道

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题