PHP 4.0 Bug #7668: Unexpected change in behavior of { within a string
| From: | ray at dasyp dot com | Date: | Mon, 06 Nov 2000 20:05:41 +0000 |
| Subject: | PHP 4.0 Bug #7668: Unexpected change in behavior of { within a string | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-37298@lists.php.net to get a copy of this message | ||
From: ray@dasyp.com
Operating system: Win NT 4.0 SP6
PHP version: 4.0.3pl1
PHP Bug Type: Scripting Engine problem
Bug description: Unexpected change in behavior of { within a string
I had a script running fine under PHP 3.x and 4.0.0, but after upgrading to the latest version
(4.04dev), I had some problems.
Following is an example of the problem:
<?php
$string = "Test String";
echo "This is a {Test} {$string}";
?>
The code above when executed under an older version of the 4.x or 3.x series will produce the
following output:
This is a {Test} {Test String}
but under 4.04dev it produces:
This is a {Test} Test String
note the the {} characters are missing around "Test String". This is causing a problem in
an SQL statement. I have found that escaping the first { character will solve the problem, hence:
<?php
$string = "Test String";
echo "This is a {Test} \{$string}";
?>
will produce:
This is a {Test} {Test String}
Please note that only the initial { character needs to be escaped.
This is my first bug report to PHP and have the suspicion that this isn't actually a bug and
perhaps a mistake on my part. I know that the {} characters are used for delimiting code blocks,
but I don't know what their significance would be in a string. The fact that PHP will expand
variables within strings (like perl) adds a little to the puzzle. Since this behavior seems new to
me I thought I would send it in just in case.
--
Edit Bug report at: http://bugs.php.net/?id=7668&edit=1