关于 var_dump 输出的问题

发布于 2024-09-24 05:06:40 字数 322 浏览 4 评论 0原文

当我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)是什么意思?

When I var_dump an object, the output looks like this:

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

XCTemplate is its class, of course, but what does the integer (here: 2477) after the # mean?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弃爱 2024-10-01 05:06:40

它是与 XCTemplate 的特定实例关联的唯一 ID。据我所知,这没有记录,也没有办法获取它(除了使用 var_dump() 之外);我查看了 Reflection 类。

据我所知:

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

    $foo = new Foo();
    var_dump($foo);
    $foo = new Foo();
    var_dump($foo);
    

    将为不同的实例化产生不同的id。

  • 这与资源 id 不同,您只需转换为 int 即可获取 id:

    $resource=curl_init();      
    var_dump($资源); // 类型为curl的资源#1
    打印(intval($资源)); // 1
    打印((int)$资源); // 1
    

It's a unique id associated with that particular instance of XCTemplate. AFAIK this is not documented, and also there is no way to get it (other than using var_dump()); and I've looked at the Reflection class.

From what I've seen:

  • The ids are unique to every instantiation; starting at 1 and incrementing by 1 with every new object. This includes every object; they don't have to be of the same class.
  • Destroying an instance (eg: through unset) frees up its id and the next instantiated object can (and will) use it.
  • It's not related to the variable; eg:

    $foo = new Foo();
    var_dump($foo);
    $foo = new Foo();
    var_dump($foo);
    

    Will produce different id's for different instantiations.

  • This is not the same as resource ids, where you can just convert to int to get the id:

    $resource= curl_init();      
    var_dump($resource);       // resource #1 of type curl
    print(intval($resource));  // 1
    print((int) $resource);    // 1
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文