ID: 35995
User updated by: jadelucca at comcast dot net
Reported By: jadelucca at comcast dot net
Status: Open
Bug Type: Scripting Engine problem
Operating System: Windows XP
PHP Version: 5.1.2
New Comment:
Under reproduce code, that SAME EXACT CODE WORKS on PHP 5.1.1! I just
testing.
The SECOND (Modification code) sends a parse error there too, so maybe
the 2nd example can't be done.
But the bug still lies within PHP 5.1.2! (For those who speed-read
through this and perhaps misundestood me.)
Previous Comments:
------------------------------------------------------------------------
[2006-01-13 12:49:04] jadelucca at comcast dot net
Description:
------------
You cannot define a variable in arguments in 5.1.2, but you could in
previous versions.
Reproduce code:
---------------
AN EXAMPLE would be:
<?php
function prefix(&$text) {
$text = "Prefix " . $text;
}
prefix($text = "Add prefix to this here, which would do that in older
versions but not this one.");
?>
Expected result:
----------------
After I run the code above, $text *should* be "Prefix Add prefix..."
etc. This is how it worked in older versions of PHP.
Actual result:
--------------
$text is unmodified. It passes-by-value, not reference, despite the
fact that I added the & in the argument list.
*Modification example*
If I swap the & sign from the function argument list to the actual
function arguments, like so:
<?php
function prefix($text) {
$text = "Prefix " . $text;
}
prefix(&$text = "Add prefix to this here, which would do that in older
versions but not this one.");
?>
I get Parse error: syntax error, unexpected '=', expecting ')'
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35995&edit=1