关于var_dump输出的问题

Dan*_*iel 10 php object var-dump

当我var_dump是一个对象时,输出如下所示:

object(XCTemplate)#2477 (4) {
  ["id"]=>
  string(1) "1"
  ["attributes"]=>
  array(0) {
  }
  ["db_table_name"]=>
  string(14) "template_names"
  ["cache"]=>
  array(0) {
  }
}
Run Code Online (Sandbox Code Playgroud)

XCTemplate 当然是它的类,但是#之后的整数(这里是:2477)是什么意思?

Nul*_*ion 8

它是与该特定实例相关联的唯一ID XCTemplate.AFAIK没有记录,也没有办法得到它(除了使用var_dump()); 我看了Reflection上课.

从我所看到的:

  • ID对于每个实例都是唯一的; 从1开始,每个新对象递增1.这包括每个对象; 他们不必属于同一类.
  • 销毁一个实例(例如:through unset)释放它的id,下一个实例化的对象可以(并且将)使用它.
  • 它与变量无关; 例如:

    $foo = new Foo();
    var_dump($foo);
    $foo = new Foo();
    var_dump($foo);
    
    Run Code Online (Sandbox Code Playgroud)

    将为不同的实例生成不同的id.

  • 这是一样的资源ID,在那里你可以转换为int拿到ID:

    $resource= curl_init();      
    var_dump($resource);       // resource #1 of type curl
    print(intval($resource));  // 1
    print((int) $resource);    // 1
    
    Run Code Online (Sandbox Code Playgroud)

  • @Daniel是的,这就是它的样子.你使用的是重型框架吗? (2认同)