ID: 39166
User updated by: peters at yandex dot ru
Reported By: peters at yandex dot ru
Status: Bogus
Bug Type: Class/Object related
Operating System: Windows and Linux
PHP Version: 5.1.6
New Comment:
May be this should be noticed in the manual, because it's not clear
what does mean "also works on objects".
Previous Comments:
------------------------------------------------------------------------
[2006-10-16 13:08:31] [EMAIL PROTECTED]
ARRAY_key_exists() first converts it to ARRAY and then continues
working, which is expected.
------------------------------------------------------------------------
[2006-10-16 12:57:40] peters at yandex dot ru
Description:
------------
array_key_exists() may take object as second parameter and
in such case I think it should use __isset() magic function of the
object (if any), but it seems not to do so.
The isset() and array_key_exists() may return different results for
the same object, which is not good :)
Reproduce code:
---------------
class TestObject
{
function __isset($nm)
{
return true;
}
}
$A = new TestObject();
var_dump(array_key_exists('test', $A));
var_dump(isset($A->test));
Expected result:
----------------
true
true
Actual result:
--------------
false
true
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39166&edit=1