Internal casting of objects as array keys
| From: | Aidan Lister | 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