Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP: Getting reference ID

Tags:

php

How do I get the PHP reference ID, as is possible with the var_dump function:

// PHP 5.2.6
class Test {}

$test1 = new Test; var_dump($test1);
$test1b = $test1;  var_dump($test1b);
$test2 = new Test; var_dump($test2);

Resulting in:

object(Test)#1 (0) {}
object(Test)#1 (0) {}
object(Test)#2 (0) {}


See, var_dump can tell which references are equal without a straight-up comparison, and it prints their reference ID #1 and #2. How do I access that reference ID?

like image 973
Derek Illchuk Avatar asked Sep 02 '25 17:09

Derek Illchuk


1 Answers

I suppose a solution could be to use spl_object_hash :

This function returns a unique identifier for the object. This id can be used as a hash key for storing objects or for identifying an object.

It's not a "simple" number like what you get with var_dump, but I suppose it's better than nothing...


For instance, with this portion of code, inspired from yours :

$test1 = new Test;
$test1b = $test1;
$test2 = new Test;

echo spl_object_hash($test1) . '<br />';
echo spl_object_hash($test1b) . '<br />';
echo spl_object_hash($test2) . '<br />';

I get this output :

000000002c836d1d000000006bfbdc77
000000002c836d1d000000006bfbdc77
000000002c836d1e000000006bfbdc77
like image 109
Pascal MARTIN Avatar answered Sep 04 '25 06:09

Pascal MARTIN