Internal casting of objects as array keys

From: Date: Sat, 22 May 2004 06:40:36 +0000
Subject: Internal casting of objects as array keys
Groups: php.internals 
Request: Send a blank email to internals+get-10021@lists.php.net to get a copy of this message
Hello devs, I'd like to discuss the use of objects as array keys. <?php class idobject { private $_id; function __construct ($id) { $this->_id = $id; } function __tostring () { return (int)$this->_id; } } $blah1 = new idobject(1); $blah2 = new idobject(2); $blah3 = new idobject(3); $blah4 = new idobject(4); $array = array ( $blah1 => 'blah1', $blah2 => 'blah2', $blah3 => 'blah3', $blah4 => 'blah4', ); echo "<pre>"; var_dump($array); echo "</pre>"; ?> In PHP4 this results in an error, In PHP5 there is no error, the array is simply empty. An array key can only be a string/int, thus, when someone attempts to use an array as a key would it not make sense to cast the object? This behaviour would then be consistant with resources. Regards, Aidan

« previous php.internals (#10021) next »