> On Oct 30, 2014, at 2:13 AM, Christian Stoller <stol...@leonex.de> wrote: > > > From: Alexander Lisachenko [mailto:lisachenko...@gmail.com], Sent: Monday, > October 27, 2014 11:18 AM > >> Hello, internals! >> >>> The name __hash is not final, I am open to using __toKey instead or any >>> reasonable alternative, we may also include a couple of options in the >>> vote if that will be a point of disagreement. >> >> I like this idea with custom hash implementation because spl_object_hash() >> is not reliable when objects are quickly created/destroyed, so hashes can >> be the same for several different objects. However, will it be better to >> introduce an interface for that? For example, Hashable can be a good name >> (like Traversable one). Default implementation then can be a simple trait >> that will be added later to the concrete class. > > > I like the idea introducing an interface for this functionality, instead > of adding a further magic method. But I think anything like "hash" or > "hashable" is confusing for users.
The magic method is more of a PHP approach while an interface would be more appropriate. That said, this RFC is a true representation of a hash vs something like spl_object_hash. That’s what causes user confusion. spl_object_hash would’ve been better served as a name like spl_object_id or spl_object_hash_id. Something that indicates uniqueness regardless of the values of a particular object. > > Maybe something like > > interface ArrayKeyConvertable > { > function toArrayKey(); > } > > > Christian -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php