On Tue, Sep 23, 2014 at 12:29 PM, Andrea Faulds <a...@ajf.me> wrote: > >> On 23 Sep 2014, at 10:15, Leigh <lei...@gmail.com> wrote: >> >>> On 23 September 2014 09:51, Michael Wallner <m...@php.net> wrote: >>> >>> Yes, it was removed intentionally (quite a long time ago), like using >>> resources as array keys, to avoid hard-to-trace bugs for the user. At >>> least that's the reasoning I can remember. >> >> He doesn't want to add the object as a key, he wants to invoke __toString(). >> >> Is there really any harm in adding a IS_OBJECT case to >> zend_whatever_add_array_element, and checking if it has a __toString?
It does work if you do an explicit cast to string: class Foo { public function __toString() { return 'Bar'; } } $array = array(); $object = new Foo(); $array[(string) $object] = 'this works'; Cheers, Andrey. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php