blob: cfe52fe67ff822ccda93ef4079be9e4079583e8b (
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--
Generator methods can yield by reference
--FILE--
<?php
class Test implements IteratorAggregate {
protected $data;
public function __construct(array $data) {
$this->data = $data;
}
public function getData() {
return $this->data;
}
public function &getIterator() {
foreach ($this->data as $key => &$value) {
yield $key => $value;
}
}
}
$test = new Test([1, 2, 3, 4, 5]);
foreach ($test as &$value) {
$value *= -1;
}
var_dump($test->getData());
?>
--EXPECT--
array(5) {
[0]=>
int(-1)
[1]=>
int(-2)
[2]=>
int(-3)
[3]=>
int(-4)
[4]=>
&int(-5)
}
|