On Jun 3, 2006, at 1:13 PM, Rasmus Lerdorf wrote:
RL>>I don't understand why using the object as an index would
trigger a RL>>__toString() call. PHP's array indices are not
defined to be strings, RL>>so I don't see this as being a string
context use and thus
RL>>__toString() shouldn't be called.
If so, what should be the actual key in the hash?
I am sure we could come up with some sort of hashing mechanism that
would uniquely identify an object. And perhaps even expose it to
the user with a __hashOf(). But again, I am not sure we want to
open up that can of worms. Like I said, I think this is the more
correct approach and that we shouldn't try to use a magic __toString
() call here to attempt to emulate this.
I'm new to this list, so I apologize if I'm out of line in commenting
here, but it's my opinion that the advantages offered by a __hash()
magic function would outweigh the inevitable complexity and issues
involved. I imagine that it would be a strict semantic: If the class
of the object being indexed into the array doesn't define a magic
__hash() function, it would be a warning or even fatal error; no
attempt would/should be made to calculate a hash based on anything
other than what the object is willing to call itself.
Gwynne
SkyTag Software
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php