On Fri, 31 Jul 2015, Julien Pauli wrote: > Hi people. > > I've been pinged many times to add a new spl_object_id() function to PHP, > that would return the internal object handle of an object. > > Today, spl_object_hash() partially allows that, but adds many randomness to > the result, which is not very cool to use later (why does it even add > randomness ?). > > There has been topics about this subject. > For example, at http://marc.info/?l=php-internals&m=141814350920452&w=2 > > > Beeing able to get the object handle back in PHP userland would ease many > tools, mainly debug-oriented tools. > I know PHPUnit, Symfony and many big projects today make use of > spl_object_hash() to identify objects. > > I also know people that print_r($an_object) and parse the output just to > extract the object handle from there... Crazy isn't it ? > Why couldn't we help those people by simply adding a new function that does > the job ?
You realize that these object handles aren't particularly stable? The same object ID can be reused: derick@whisky:/tmp $ cat objid.php <?php class Foo {} $a = new Foo; var_dump($a); $a = new Foo; var_dump($a); $a = new Foo; var_dump($a); derick@whisky:/tmp $ php objid.php class Foo#1 (0) { } class Foo#2 (0) { } class Foo#1 (0) { } You can't deterministically reference an object by it's class and handle... so I also think this implementation detail should not be shared through an API. cheers, Derick -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php