Hallo,
Dass aber $myString["dummy"] == $myString[0] ist, war mir auch neu, ist aber offensichtlich so:
PHP wird mir immer unsympathischer ...
Wieso das? Das ist ein absolut logisches Verhalten. "dummy" ist undefiniert (würde bei error_reporting(E_ALL) eine Warnung geben).
Nein, in einem Array würde es eine "Notice: Undefined index dummy in: ..." ergeben. Bei einem String eben nicht. Probier es aus:
<?php
header("Content-Type: text/html; charset=ISO-8859-1");
error_reporting(E_ALL | E_STRICT);
$myString = "1234";
echo var_dump($myString)."<br>";
echo $myString[0]."<br>";
echo $myString["dummy"]."<br>";
echo "<hr>";
$myArray = array(chr(49), chr(50), chr(51), chr(52));
echo var_dump($myArray)."<br>";
echo $myArray[0]."<br>";
echo $myArray["dummy"]."<br>";
?>
Das _ist_ unlogisch.
Im übrigen ist ein String immer ein Array, das kennt man ja schon aus C ;)
Nein. In PHP ist ein String kein Array. Man kann die Array-Schreibweise lesend darauf anwenden. Das ist aber auch schon alles.
<?php
$myString = "1234";
echo var_dump($myString)."<br>";
$myString[2]="Hallo Welt";
echo var_dump($myString)."<br>";
echo "<hr>";
$myArray = array(chr(49), chr(50), chr(51), chr(52));
echo var_dump($myArray)."<br>";
$myArray[2]="Hallo Welt";
echo var_dump($myArray)."<br>";
?>
viele Grüße
Axel