ID:               37263
 User updated by:  dbeckham at dealnews dot com
 Reported By:      dbeckham at dealnews dot com
 Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: Linux (2.6.14)
 PHP Version:      5.1.2
 New Comment:

I disagree, this *is* a bug.  You can't have it both ways, either the
curly brace is not a special character and does not need to be escaped,
or it is a special character used for complex variables and can be
escaped.  What you have right now is neither ... it's a special
character and removed from the output when used with a complex
variable, but if escaped, it's not used with the complex variable and
additionally the backslash is added to the output.

By the way, my intention was never to produce {$ in the output, but
only to make sure the curly brace was output along with the variable.


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

[2006-05-01 19:32:26] judas dot iscariote at gmail dot com

this is not a bug, it's a behaviour change of the engine.
see.

http://bugs.php.net/bug.php?id=35527

and the documentation here:

"Before PHP 5.1.1, backslash in \{$var} hasn't been printed."

"(Use "{\$" to get a literal "{$")." [1]

[1] http://php.net/manual/en/language.types.string.php

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

[2006-05-01 15:36:29] dbeckham at dealnews dot com

Description:
------------
When escaping curly braces in a string, the backslash characters are
included in any output.

Reproduce code:
---------------
<?
$test = "test";
echo "\{$test\}\n";
?>


Expected result:
----------------
The above output should be:

{test}


Actual result:
--------------
The actual output is:

\{test\}



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


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

Reply via email to