【问题标题】:revert the spl_object_hash php , get an object from his hash php , get an object from his reference恢复 spl_object_hash php ,从他的 hash php 中获取一个对象,从他的引用中获取一个对象
【发布时间】:2015-10-05 10:23:55
【问题描述】:

PHP:如何从他的哈希中获取一个对象? [如何恢复 spl_object_hash ]

示例:

$a = new A();
$adressOfA = spl_object_hash($a);

//... laters ...
// I want to get the instance stored in the $adressOfA, kind of
$theSameAButInAnotherVariable = some_function($adressOfA);

感谢您提前提供的帮助。

【问题讨论】:

  • 我认为你误解了 spl_object_hash($a); 的目的它不是原始对象的指针/引用/地址,只是对象的唯一 id....如果您需要将其用作指针,则使用 $adressOfA 作为键构建对象数组

标签: php reference spl


【解决方案1】:

这是不可能的(散列是不可逆的,散列本身不是“地址”),甚至尝试都没有意义,因为:

  1. 一旦对象不再存在,用于散列的 id 将分配给其他对象。如果你想跨不同进程持久化一个对象,你可以改用serialize()
  2. 只要对象还存在,就可以直接传递。变量$a 实际上并不将对象作为值,而是将对象标识符作为引用。因此,您无需担心内存或对象副本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2020-10-13
    • 2017-01-28
    • 2021-11-07
    相关资源
    最近更新 更多