Bug #67608 [Opn->Nab]: PHP Bug when reusing variables by references

From: Date: Fri, 11 Jul 2014 17:00:25 +0000
Subject: Bug #67608 [Opn->Nab]: PHP Bug when reusing variables by references
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-186570@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67608&edit=1 ID: 67608 Updated by: aharvey@php.net Reported by: rafavega at gmail dot com Summary: PHP Bug when reusing variables by references -Status: Open +Status: Not a bug Type: Bug Package: *General Issues Operating System: Debian, MacOS PHP Version: 5.5.14 Block user comment: N Private report: N New Comment: Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php This is unfortunate, but documented and expected behaviour. Previous Comments: ------------------------------------------------------------------------ [2014-07-11 15:21:59] rafavega at gmail dot com Description: ------------ What this code should do, is to take the $lines array and delete the 2B value, but it doesn’t work like that, and is because it get crash when you use the $items variable in the second foreach and you already used it as a referece variable, even if you clean the $items variable with an empty array as you see in the code. Just if you change the name or the $items variable in the second foreach it works fine. Test script: --------------- $lines = array( '1' => array( '1A' ), '2' => array( '2A', '2B', '2C' ) ); foreach($lines as &$items){ foreach($items as $key => $value){ if($value=='2B') unset($items[$key]); } } $items = array(); foreach($lines as $key => $items){ print_r($items); } Expected result: ---------------- array( '1A' ) array( '2A', '2C' ) Actual result: -------------- array( '1A' ) array( '1A' ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=67608&edit=1

« previous php.bugs (#186570) next »