[php-maint] Bug#346145: php4: Curly braces and brackets are treated equally

Sjoerd Hemminga sjoerd at hemminga-online.nl
Thu Jan 5 23:06:35 UTC 2006


Package: php4
Version: 4:4.4.0-4
Severity: normal


When using curly braces on an empty string to change a character at a
specified position, PHP will create an array.

The following code...

$bla = '';
$bla{0} = 'a';
var_dump ($bla);

...prints:

array(1) {
  [0]=>
  string(1) "a"
}

But if we change the first line to "$bla = ' ';", i.e. a string of one
space, we get the expected output:

string(1) "a"

The basic problem is that curly braces and square brackets are treated
exactly the same. From a semantic point of view, they aren't. PHP developers
seem to realize this, since they've deprecated the use of brackets for the
purpose of accessing arrays.


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (700, 'testing'), (650, 'stable'), (600, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12.5
Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15)

Versions of packages php4 depends on:
ii  libapache-mod-php4            4:4.4.0-4  server-side, HTML-embedded scripti
ii  php4-cgi                      4:4.4.0-4  server-side, HTML-embedded scripti
ii  php4-common                   4:4.4.0-4  Common files for packages built fr

php4 recommends no packages.

-- debconf information:
  php4/update_apache_php_ini: true




More information about the pkg-php-maint mailing list