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?)

Sebastian Mendel lists at sebastianmendel.de
Son Jun 6 19:54:36 CEST 2004


Peter Bieling wrote:

> Sebastian Mendel wrote:
> 
> 
>>> <?php
>>> $zeichen = array('A', 'B', 'C');
>>> echo $zeichen{2};
>>> //Gibt C aus
>>> ?>
>>>
>>> Ist das irgendwo dokumentiert?
>>> Das ergibt nämlich wieder witzige Effekte:
>>
>>
>>
>> ja, im Handbuch, unter Array
>>
>> $zeichen = array('A', 'B', 'C');
>> ist gleich:
>> $zeichen = array(0 => 'A', 1 => 'B', 2 => 'C');
>>
>> Array-Keys beginnen bei 0
> 
> 
> das wusste ich auch schon vorher, aber wo steht im Handbuch unter Array, 
> dass ich statt $zeichen[2] bei einem Array $zeichen{2} schreiben darf?
> Ich dachte, diese Syntax wäre nur für Strings erlaubt.

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]

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];

... bin selbst momentan zu faul, und hab auch nix heir zum probieren ...

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



-- 
Sebastian Mendel

info at sebastianmendel.de

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

php::bar PHP Wiki   -   Listenarchive