php-src/ext/standard/tests/array/array_merge_replace_recursive_refs.phpt
Nikita Popov 8a442a33c3 Fix ref handling in array_merge/replace_recursive()
As usual, if the reference has rc=1 it really isn't a reference.
2016-07-29 19:07:04 +02:00

38 lines
507 B
PHP

--TEST--
array_merge/replace_recursive() should unwrap references with rc=1
--FILE--
<?php
$x = 24;
$arr1 = [[42]];
$arr2 = [[&$x]];
unset($x);
$arr3 = array_replace_recursive($arr1, $arr2);
$arr2[0][0] = 12;
var_dump($arr3);
unset($arr1, $arr2, $arr3);
$x = 24;
$arr1 = [42];
$arr2 = [&$x];
unset($x);
$arr3 = array_merge_recursive($arr1, $arr2);
$arr2[0] = 12;
var_dump($arr3);
?>
--EXPECT--
array(1) {
[0]=>
array(1) {
[0]=>
int(24)
}
}
array(2) {
[0]=>
int(42)
[1]=>
int(24)
}