summaryrefslogtreecommitdiff
path: root/Zend/tests/bug67633.phpt
blob: a9e05d10ab9ce113c76fd5b0c8ef7b3998d96054 (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
--TEST--
Bug #67633: A foreach on an array returned from a function not doing copy-on-write
--FILE--
<?php

function id($x) {
    return $x;
}

function &ref_id(&$x) {
    return $x;
}

$c = 'c';
$array = ['a', 'b', $c];

foreach(id($array) as &$v) {
    $v .= 'q';
}
var_dump($array);

foreach(ref_id($array) as &$v) {
    $v .= 'q';
}
var_dump($array);

?>
--EXPECT--
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}
array(3) {
  [0]=>
  string(2) "aq"
  [1]=>
  string(2) "bq"
  [2]=>
  &string(2) "cq"
}