summaryrefslogtreecommitdiff
path: root/ext/spl/tests/bug75717.phpt
blob: 77226e10993d8e8b72b9d38233757c633912d47c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--TEST--
Bug #75717: RecursiveArrayIterator does not traverse arrays by reference
--FILE--
<?php

function flatten(array $nestedArraysAndStrings){
    $flat=[];
    $iter = new RecursiveIteratorIterator(
        new RecursiveArrayIterator($nestedArraysAndStrings));
    foreach($iter as $leaf){ $flat[] = $leaf; }
    return join(null, $flat);
}

$noRefs = [[[['some']]],[' nested '],"items"];

$withRefs = []+$noRefs;
$wat = $noRefs[0];
$withRefs[0] = &$wat;

echo flatten($noRefs), "\n";
echo flatten($withRefs), "\n";

?>
--EXPECT--
some nested items
some nested items