#22592 [Ver]: Cascading assignments to strings with curly braces broken

From: Date: Mon, 10 Mar 2003 19:35:45 +0000
Subject: #22592 [Ver]: Cascading assignments to strings with curly braces broken
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-35294@lists.php.net to get a copy of this message
 ID:               22592
 Updated by:       moriyoshi@php.net
 Reported By:      matteo at beccati dot com
 Status:           Verified
 Bug Type:         Scripting Engine problem
 Operating System: Debian GNU/Linux 3.0
-PHP Version:      4.3.2-dev
+PHP Version:      4.3.2-dev 5CVS-2003-03-11
 New Comment:

Update version


Previous Comments:
------------------------------------------------------------------------

[2003-03-07 12:13:25] sniper@php.net

Happens also with 4.3.2-dev. (from today)



------------------------------------------------------------------------

[2003-03-07 11:40:25] matteo at beccati dot com

When using cascading assignments to strings and curly braces, to change
characters within strings, only the last character is changed to the
right value. Other characters become NUL (0x00).

<?
$wrong = $correct = 'abcdef';

$correct{1} = '*';
$correct{3} = '*';
$correct{5} = '*';

// This produces the 
$wrong{1} = $wrong{3} = $wrong{5} = '*';

echo $correct."\n".$wrong."\n\n";
echo urlencode($correct)."\n"."\n".urlencode($wrong)."\n";

?>


The resulting output is:

a*c*e*
ace*

a%2Ac%2Ae%2A
a%00c%00e%2A


I also tested it on a old PHP 4.2.0-dev, and it gives the same result.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=22592&edit=1



Thread (10 messages)

« previous php.bugs (#35294) next »