- strtoupper: documentation ( source)
- printf: documentation ( source)
<?php
class Test {
public $testdata = [];
public function __construct(&$inputdata) {
$this->testdata =& $inputdata;
}
public function &getIterator() {
foreach ($this->testdata as $ikey => &$ivalue) {
yield $ikey => $ivalue;
}
}
}
$data = array("one" => "Curly", "two" => "Larry", "three" => "Moe");
$t = new Test($data);
foreach ($t->getIterator() as $tkey => &$tvalue) {
// $tvalue -> $ivalue -> $t->testdata -> $inputdata -> $data
// break any reference in that chain and the line below will not work
$tvalue = strtoupper($tvalue);
}
foreach ($data as $dkey => $dvalue) {
printf("%s: %s\n", $dkey, $dvalue);
}