summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-06-21 19:15:27 +0000
committerMarcus Boerger <helly@php.net>2004-06-21 19:15:27 +0000
commitdc66fb1f10518b1c4712fd4d253ab3fb61428080 (patch)
tree2aab0a86f1af5ba2a5db5ca6cc47b63453450e22
parent7fcfa8865e97a6c8141532187428d9dd9d1217e5 (diff)
downloadphp-git-dc66fb1f10518b1c4712fd4d253ab3fb61428080.tar.gz
Fixed bug #28822: ArrayObject::offsetExists() works inverted
-rw-r--r--NEWS1
-rwxr-xr-xext/spl/spl_array.c2
-rwxr-xr-xext/spl/tests/bug28822.phpt16
3 files changed, 18 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index d81337c407..33389050a1 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ PHP NEWS
- Fixed bug #28851 (call_user_func_array has typo in error message). (Marcus)
- Fixed bug #28831 (ArrayObject::offsetGet() does the work of offsetUnset()).
(Marcus)
+- Fixed bug #28822 (ArrayObject::offsetExists() works inverted). (Marcus)
- Fixed bug #28789 (ReflectionProperty getValue() fails on public static
members). (Marcus)
- Fixed bug #28771 (Segfault when using xslt and clone). (Rob)
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index 28a4870366..901bd35552 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -337,7 +337,7 @@ SPL_METHOD(Array, offsetExists)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &index) == FAILURE) {
return;
}
- RETURN_BOOL(spl_array_has_dimension(getThis(), index, 1 TSRMLS_CC) == SUCCESS);
+ RETURN_BOOL(spl_array_has_dimension(getThis(), index, 1 TSRMLS_CC));
} /* }}} */
/* {{{ proto bool ArrayObject::offsetGet(mixed $index)
diff --git a/ext/spl/tests/bug28822.phpt b/ext/spl/tests/bug28822.phpt
new file mode 100755
index 0000000000..c3da4607f5
--- /dev/null
+++ b/ext/spl/tests/bug28822.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #28822: ArrayObject::offsetExists() works inverted
+--FILE--
+<?php
+
+$array = new ArrayObject();
+$array->offsetSet('key', 'value');
+var_dump($array->offsetExists('key'));
+var_dump($array->offsetExists('nokey'));
+
+?>
+===DONE===
+--EXPECT--
+bool(true)
+bool(false)
+===DONE===