phpbar.de logo

Mailinglisten-Archive

Re: [php] Array mit String überschreiben - Bug?

Re: [php] Array mit String überschreiben - Bug?

Norbert Pfeiffer norbert at itbw.de
Sam Mai 22 12:41:44 CEST 2004


Hi Peter,

> Da steht aber auch:
> <zitat>
> Anmerkung:  Für Abwärtskompatibilität können Sie für
> den selben Zweck immer noch die Array-Klammern verwenden.
> Diese Syntax wird jedoch seit PHP 4 missbilligt.</zitat>

missbilligt - aber nie abgeschafft, auch nicht in PHP5,
wie der 'erweiterte' Versuch zeigt:

<HR>OS[<?= PHP_OS; ?>] - PHP[<?= PHP_VERSION; ?>]
<?
$str = 'abcdefghi';
$X = strlen($str);
echo "vorher:  _".$str."_\n";
$str[1]='';
$str{3}='';
$str[5]="\0";
$str{7}="\0";
echo "nachher: _".$str."_\n";
for($i=0; $i<$X; $i++) {
    echo sprintf('%2s', $i).".: _".$str{$i}."_/_".$str[$i]."_\n";
}
?>
erzeugt diese Ausgaben:
---------------------------------------------------------------
OS[WIN32] - PHP[4.3.4]
vorher:  _abcdefghi_
nachher: _acegi_
 0.: _a_/_a_
 1.: __/__
 2.: _c_/_c_
 3.: __/__
 4.: _e_/_e_
 5.: __/__
 6.: _g_/_g_
 7.: __/__
 8.: _i_/_i_
---------------------------------------------------------------

OS[WIN32] - PHP[5.0.0b3]
vorher:  _abcdefghi_
nachher: _acegi_
 0.: _a_/_a_
 1.: __/__
 2.: _c_/_c_
 3.: __/__
 4.: _e_/_e_
 5.: __/__
 6.: _g_/_g_
 7.: __/__
 8.: _i_/_i_

---------------------------------------------------------------

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.


m. b. G. Norbert
_____________________
normal:  02686-987103
Notruf:  0177-2363368
---------------------
e.o.m.


php::bar PHP Wiki   -   Listenarchive