On Tue, Sep 23, 2014 at 12:29 PM, Andrea Faulds <[email protected]> wrote:
>
>> On 23 Sep 2014, at 10:15, Leigh <[email protected]> wrote:
>>
>>> On 23 September 2014 09:51, Michael Wallner <[email protected]> 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