php-src/Zend/tests/generators/generator_method_by_ref.phpt
Máté Kocsis 75a678a7e3
Declare tentative return types for Zend (#7251)
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2021-07-19 13:44:20 +02:00

44 lines
666 B
PHP

--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(): Traversable {
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)
}