10

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

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

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

4

1 回答 1

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);
    

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

  • 资源 id 不同,您可以在其中转换int为获取 id:

    $resource= curl_init();      
    var_dump($resource);       // resource #1 of type curl
    print(intval($resource));  // 1
    print((int) $resource);    // 1
    
于 2010-09-21T17:22:36.397 回答