summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2014-10-16 14:44:35 +0200
committerNikita Popov <nikic@php.net>2014-10-16 14:44:35 +0200
commitfc6ce7d1c1852385b35b3a41feb4c47d9e1ce945 (patch)
treefd9921e8b6cc0d7f5b18876ab0c478c0a7ca54e3
parentcf5920e8aa8958d47f391c483d7399fc77a58092 (diff)
downloadphp-git-fc6ce7d1c1852385b35b3a41feb4c47d9e1ce945.tar.gz
Fix array_keys() on $GLOBALS
-rw-r--r--ext/standard/array.c2
-rw-r--r--ext/standard/tests/array/array_keys_on_GLOBALS.phpt12
2 files changed, 13 insertions, 1 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 7b49b2fd13..7d8e4d0efe 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2597,7 +2597,7 @@ PHP_FUNCTION(array_keys)
add_key = 1;
/* Go through input array and add keys to the return array */
- ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(input), num_idx, str_idx, entry) {
+ ZEND_HASH_FOREACH_KEY_VAL_IND(Z_ARRVAL_P(input), num_idx, str_idx, entry) {
if (search_value != NULL) {
is_equal_func(&res, search_value, entry TSRMLS_CC);
add_key = zval_is_true(&res);
diff --git a/ext/standard/tests/array/array_keys_on_GLOBALS.phpt b/ext/standard/tests/array/array_keys_on_GLOBALS.phpt
new file mode 100644
index 0000000000..1d14ff4d53
--- /dev/null
+++ b/ext/standard/tests/array/array_keys_on_GLOBALS.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Using array_keys() on $GLOBALS
+--FILE--
+<?php
+
+$foo = 'bar';
+unset($foo);
+var_dump(in_array('foo', array_keys($GLOBALS)));
+
+?>
+--EXPECT--
+bool(false)