уникальный идентификатор переменной (например, spl_object_hash)

Возможно ли получить уникальный идентификатор переменной scalar / array в PHP5.3 Что-то вроде хеша объекта для объектов. Например, у меня есть:

$a = array(1, 2, 3); $b = &$a; 

поэтому уникальный идентификатор для переменных $ a и $ b должен быть таким же, может быть, вырван из указателя памяти. Я не нашел альтернативной функции spl_object_hash .

Related of "уникальный идентификатор переменной (например, spl_object_hash)"

небольшое обходное решение:

 function unique_var($var) { return md5(serialize($var)); } 
 function createHash($salt, $extra, $length = 8) { $hashSeed = sprintf( '%d:%s:%s', microtime(true), $salt, hash('sha1', $extra) ); do { $hashSeed .= ':' . uniqid(); $hash = hash('sha256', $hashSeed); $hash = substr($hash, 0, $length); } while (hashExists($hash)); // loop until `hashExists` returns `FALSE`. return $hash; } function hashExists($hash) { // ... check if $hash is unique ... // for example by comparing with a list of stored hashes return false; // return false when $hash is unique } 

Например, вы можете использовать его так:

 $arr = array(1, 2, 3); $salt = $arr[0]; // generate some salt, could be anything $extra = $arr[1] . $arr[2]; // generate some extra spice $length = 32; // let's get a long hashcode (defaults to 8) $hash = createHash($salt, $extra, $length); print 'Hashcode: ' . $hash; 

Что бы вывести что-то в этом направлении:

 Hashcode: 3d267e5c1232476b75d8c3dbe68474c9