Hi!

> This is already part of the public API: var_dump and debug_zval_dump do
> expose object IDs to userland. It's just inefficient to get for more

Debug functions are not the part of public API. If you rely on anything
var_dump is producing for your code to work, you risk your code being
broken any time, without warning or any BC consideration.

> Even if its internal implementation is totally different from PHP's,
> HHVM adds an id to every object, just for this requirement: matching
> what PHP exposes to userland.

That's HHVM's decision, however the fact that they need to fake IDs is
not a good thing. Proper code should not depend on such details of
engine implementation.

> I'd more than happy to have an spl_object_id() function btw!

I wouldn't be very happy, because it is wrong design to base userland
PHP code on a detail of an implementation of the engine. That's why
there was a hash and not direct ID - so that the code would not depend
on implementation detail and anything that produces different hash for
different objects would work.
The alternative (stuffing the ID into spl_object_hash) is worse however.
-- 
Stas Malyshev
smalys...@gmail.com

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to