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

Reply via email to