相关疑难解决方法(0)

spl_object_hash for PHP <5.2(对象实例的唯一ID)

我正在尝试在PHP 5+中获取对象实例的唯一ID.

该函数spl_object_hash()可从PHP 5.2获得,但我想知道是否有旧的PHP版本的解决方法.

php.net上的评论中有几个函数,但它们并不适合我.第一个(简化):

function spl_object_hash($object){
    if (is_object($object)){
        return md5((string)$object);
        }
    return null;
    }
Run Code Online (Sandbox Code Playgroud)

不适用于本机对象(如DOMDocument),第二个:

function spl_object_hash($object){
    if (is_object($object)){
        ob_start();
        var_dump($object);
        $dump = ob_get_contents();
        ob_end_clean();
        if (preg_match('/^object\(([a-z0-9_]+)\)\#(\d)+/i', $dump, $match)) {
            return md5($match[1] . $match[2]);
            }
        }
    return null;
    }
Run Code Online (Sandbox Code Playgroud)

看起来它可能是一个主要的性能破坏者!

有人有什么东西吗?

php spl

5
推荐指数
1
解决办法
3937
查看次数

标签 统计

php ×1

spl ×1