Re: Broken compatibility with escaping { in php 5.2

From: Date: Thu, 18 Jan 2007 13:26:36 +0000
Subject: Re: Broken compatibility with escaping { in php 5.2
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-247320@lists.php.net to get a copy of this message
On cs, 2007-01-18 at 14:19 +0100, Jochem Maas wrote: > Bogdan Ribic wrote: > > Hi all, > > > > Try this: > > > > $a = ''; > > echo "\{$a}"; > > > > from php 4, it outputs "{}", from php 5.2 (one that comes with Zend 5.5) > > no-one here supports Zend. > > > it outputs "\{}", thus breaking existing scripts. > > AFAICT the escaping in that string is wrong - the fact that it did work > the way you want it to is probably sheer luck. > > lastly I ran your tests and determined at the least that the 'break' > occur *prior* to 5.2. at a guess it probably changed in 5.0, here are my results: > > # php -r 'echo "php",phpversion(),":\n"; $a = ""; > var_dump("\{$s}");' ; > php5 -r 'echo "php",phpversion(),":\n"; $a = ""; > var_dump("\{$s}");' > > OUTPUT: > > php4.3.10-18: > string(2) "{}" > php5.1.2: > string(3) "\{}" > > > > > be pragmatic - fix your script :-) is this the correct form: $a = ''; echo "\{$a\}"; if I want to get "{}" a result? (I think it is) greets Zoltán Németh >

« previous php.general (#247320) next »