Mailinglisten-Archive |
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