Bug #75117 [NEW]: yield-by-reference in method class

From: Date: Fri, 25 Aug 2017 04:59:23 +0000
Subject: Bug #75117 [NEW]: yield-by-reference in method class
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-210801@lists.php.net to get a copy of this message
From: alditis at gmail dot com Operating system: Ubuntu 16.04 PHP version: 7.1.8 Package: Scripting Engine problem Bug Type: Bug Bug description:yield-by-reference in method class Description: ------------ yield-by-reference in the class method not working I how expected. Test script: --------------- class Test { public $data = []; function __construct($data){ $this->data = $data; } function &getIterator($d) { $this->data = $d; foreach ($d as $key => $value) { yield $key => $value; } } function printData() { foreach ($this->data as $key => $value) { echo($key . ':' . $value . PHP_EOL); } } } $data = array('one'=>'Curly', 'two'=>'Larry', 'three'=>'Moe'); $t = new Test($data); foreach ($t->getIterator($data) as $key => &$value) { $value = strtoupper($value); } $t->printData(); Expected result: ---------------- I expected names in uppercase: one:CURLY two:LARRY three:MOE Actual result: -------------- $t->printData() of the test script display: one:Curly two:Larry three:Moe -- Edit bug report at https://bugs.php.net/bug.php?id=75117&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=75117&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=75117&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=75117&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=75117&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=75117&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=75117&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=75117&r=needscript Try newer version: https://bugs.php.net/fix.php?id=75117&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=75117&r=support Expected behavior: https://bugs.php.net/fix.php?id=75117&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=75117&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=75117&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=75117&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=75117&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=75117&r=dst IIS Stability: https://bugs.php.net/fix.php?id=75117&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=75117&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=75117&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=75117&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=75117&r=mysqlcfg

« previous php.bugs (#210801) next »