phpbar.de logo

Mailinglisten-Archive

Re: [php] kaputter String ( was: Array mit String überschreiben - Bug?)

Re: [php] kaputter String ( was: Array mit String überschreiben - Bug?)

Peter Bieling network at media-palette.de
Son Jun 6 21:59:00 CEST 2004


Sebastian Mendel wrote:

> wahrscheinlich weil es nicht gewollt ist
> mit {} gibt man meines erachtens den OFFSET an und dieser ist nicht mit 
> dem Key gleich zu setzen
> 
> $array{2} != $array[2]

Ist aber leider gleich.
> 
> zumindest wird er beim String als OFFSET verwendet, ein String wird ja 
> auch nicht als Array betrachtet, das man $string[n] verwenden kann war 
> ein Fehler und ist auch 'deprecated'
> 
> probier doch mal:
> 
> $array[0] = '0';
> $array[2] = '2';
> $array[1] = '1';
> echo $array{2} . ' ?= ' . $array[2];

Habe ich. Die Klammern sind austauschbar.

> außerdem dürfte auch {} nur mit integer gehen, deshalb liefert 
> $string{$string} ja auch immer das erste Zeichen, weil der $string nach 
> int gecastet wird}
> hingegen in [] int und string

Das kann ich nicht beobachten:

<?php
$array=array();
$array= array("eins" => "erster Wert",
                "zwei" => "zweiter Wert");

echo $array{"eins"} . "<br>";
echo $array{"zwei"};
?>

Ausgabe (ohne Notice und Error):
erster Wert
zweiter Wert
(PHP 4.3.6  CGI - Win-XPpro)

Ich nehme an, dass das aus Kompatibilitätsgründen zur Perl-Syntax so 
unterstützt wird. Aber, wie gesagt: ich weiß nicht, wo das dokumentiert ist.

Viele Grüße

Peter

php::bar PHP Wiki   -   Listenarchive