#40442 [Asn]: The patch I use to correct the issue
| From: | olivier at elma dot fr | Date: | Tue, 27 Feb 2007 10:10:42 +0000 |
| Subject: | #40442 [Asn]: The patch I use to correct the issue | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-109630@lists.php.net to get a copy of this message | ||
ID: 40442
User updated by: olivier at elma dot fr
-Summary: ArrayObject::offsetExists does not return a valid
result
Reported By: olivier at elma dot fr
Status: Assigned
Bug Type: SPL related
Operating System: Debian Unstable (not relevant)
PHP Version: 5.2.1
Assigned To: helly
New Comment:
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)
Previous Comments:
------------------------------------------------------------------------
[2007-02-12 09:10:23] 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
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40442&edit=1