diff options
Diffstat (limited to 'ext')
| -rwxr-xr-x | ext/spl/spl_array.c | 2 | ||||
| -rwxr-xr-x | ext/spl/tests/bug28822.phpt | 16 |
2 files changed, 17 insertions, 1 deletions
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=== |
