phpbar.de logo

Mailinglisten-Archive

[php] Array mit String überschreiben - Bug?

[php] Array mit String überschreiben - Bug?

Peter Bieling network at media-palette.de
Sam Mai 22 14:26:15 CEST 2004


Hallo Norbert,

Norbert Pfeiffer wrote:

[Beispiele]

Interessant, scheint überall gleich zu "funktionieren".

> Wieso ist eigentlich '' == "\0" ... <gruebel>
> 
> Wenn man in C oder VB in einen String eine \0 einfuegt,
> kann man sich wenigstens darauf verlassen,
> dass er genau dort zu Ende ist.

Na gut, dass muss ja nicht unbedingt. Aber klar sollte schon sein, wie 
das gedacht ist. Ich fürchte, hier ist einiges noch nicht zuende 
gedacht. Noch ein Beispiel. Dafür greife ich mal Deins jetzt auf:

<?php
//Beispiel 1
$str = 'abcdefghi';
$vorher=$str;
$str[1]='';
$str{3}='';
$str[5]='';
$str{7}='';
$nachher=$str;
$neu='acegi';
echo $nachher . '|' . $neu;
if ($nachher == $neu) echo "Die Strings sind gleich";
else echo " Die Strings sind nicht gleich";
?>
Ergebnis: ungleich (!)

<?php
//Beispiel 2
$str1= 'a' . '' . 'b';
$str2= 'ab';
echo $str1 . '|' . $str2;
if ($str1 == $str2) echo "Die Strings sind gleich";
else echo " Die Strings sind nicht gleich";
?>
Egebnis: gleich

Wenn ich das richtig sehe, scheint der Schreibzugriff auf die 
Einzelzeichen innerhalb eines "Strings" nicht zuende gedacht zu sein, ob 
nun mit eckigen oder geschweiften Klammern.
Es kann doch nicht sein, dass zwei gleiche Strings mal gleich sind und 
mal ungleich. ;-(

Viele Grüße

Peter

php::bar PHP Wiki   -   Listenarchive