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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to