|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2007-02-12 09:10 UTC] olivier at elma dot fr
Description:
------------
With 5.2.0 ArrayObject::offsetExists will return "true" if the offsetExists whether its value is empty or not.
This feature is not working anymore with 5.2.1 as it checks for the emptyness of the value too.
Reproduce code:
---------------
<?php
$a = new ArrayObject();
$a->offsetSet('property', 0);
if (!$a->offsetExists('property')) {
echo "does not exist\n";
} else {
echo "ok\n";
}
?>
Expected result:
----------------
ok
Actual result:
--------------
does not exist
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 04:00:01 2025 UTC |
Just to add the "quick and dirty" patch I use to correct the issue: --- php-5.2.1/ext/spl/was.spl_array.c 2007-02-09 12:10:18.000000000 +0100 +++ new.php-5.2.1/ext/spl/spl_array.c 2007-02-09 12:06:33.000000000 +0100 @@ -525,7 +525,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &index) == FAILURE) { return; } - RETURN_BOOL(spl_array_has_dimension_ex(0, getThis(), index, 1 TSRMLS_CC)); + RETURN_BOOL(spl_array_has_dimension_ex(0, getThis(), index, 0 TSRMLS_CC)); } /* }}} */ /* {{{ proto mixed ArrayObject::offsetGet(mixed $index)