#27964 [Asn->WFx]: foreach() + @ + with references broken
| From: | andi@php.net | Date: | Thu, 23 Jun 2005 21:29:42 +0000 |
| Subject: | #27964 [Asn->WFx]: foreach() + @ + with references broken | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-80925@lists.php.net to get a copy of this message | ||
ID: 27964
Updated by: andi@php.net
Reported By: jeff at opendbms dot com
-Status: Assigned
+Status: Wont fix
Bug Type: Zend Engine 2 problem
Operating System: *
PHP Version: 5CVS-2005-06-19
Assigned To: dmitry
New Comment:
Assigning by reference only works with variables and not expressions.
As @ starts an expression (as it requires to start and stop error
handling and therefore doesn't have a clean variable context) it makes
it extremely hard to support.
This behavior is quite general in PHP where variables that start with $
have more capabilities than expressions.
Sorry...
Previous Comments:
------------------------------------------------------------------------
[2005-06-06 12:26:58] sniper@php.net
Dmitry, can you look into this?
------------------------------------------------------------------------
[2004-04-12 19:41:33] sniper@php.net
# php -r '$array = array(); foreach(@$array as $key => &$value) {}'
Fatal error: Cannot create references to elements of a temporary array
expression in Command line code on line 1
(remove @ -> no error)
# php -r '$array = array(); foreach($array as &$value) {}'
Fatal error: Key element cannot be a reference in Command line code on
line 1
# php -r '$array = array(); foreach(@$array as &$value) {}'
PHP Parse error: parse error, expecting
T_STRING' or T_VARIABLE' or
`'$'' in Command line code on line 1
------------------------------------------------------------------------
[2004-04-12 14:32:21] jeff at opendbms dot com
Description:
------------
When I run this code:
foreach (@$formErrors as &$formError) {
I get this:
parse error, unexpected '&', expecting T_STRING or T_VARIABLE or '$'
Something about using both the @ and the & in the same foreach loop. It
works with either one alone, just not both.
Reproduce code:
---------------
use the foreach on a non-existant array with references, and the @
statement modifier.
Expected result:
----------------
Should skip the foreach loop.
Actual result:
--------------
Doesn't work.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27964&edit=1