Browse Source

Fix in_array (strict) with references

pull/686/head
Nikita Popov 12 years ago
parent
commit
43cf92edf6
  1. 1
      ext/standard/array.c
  2. 14
      ext/standard/tests/array/in_array_with_ref.phpt

1
ext/standard/array.c

@ -1165,6 +1165,7 @@ static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior) /* {{{
if (strict) {
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(array), num_idx, str_idx, entry) {
ZVAL_DEREF(entry);
is_identical_function(&res, value, entry TSRMLS_CC);
if (Z_TYPE(res) == IS_TRUE) {
if (behavior == 0) {

14
ext/standard/tests/array/in_array_with_ref.phpt

@ -0,0 +1,14 @@
--TEST--
in_array() with references
--FILE--
<?php
$value = 42;
$array = [&$value];
var_dump(in_array(42, $array, false));
var_dump(in_array(42, $array, true));
?>
--EXPECT--
bool(true)
bool(true)
Loading…
Cancel
Save