Hi,
$ortplz = Münster,48145
Der Variablen $ortplz wird die Konstante Münster 1) zugewiesen - da diese (vermutlich) nicht definiert ist, weist PHP den Namen der Konstanten als String zu.
Anschließend (Komma-Operator, der niedrigere Priorität als Zuweisungs-Operator hat) wird der Ausdruck 48145 berechnet (dabei kommt 48145 raus) und das Ergebnis verworfen.
$ortplz= explode(",", $ortplz);
"Münster" enthält kein Komma, es gibt also keine Trennstelle. Da kein negatives Limit gesetzt ist (kein dritter Parameter), wird ein array mit einem String (nämlich "Münster") zurückgegeben.
$ort= $ortplz[0];
$ort wird der erste String aus dem Array zugewiesen - das ist "Münster".
Bis hierhin ist mir das Verhalten noch verständlich. Ab hier wird's schwammig. Ich versuche mal, das PHP-Verhalten zu erraten.
$plz= $ortplz[1];
Das array $ortplz enthält nur einen String, $ortplz[1] existiert demnach nicht als Array-Inhalt.
Ich vermute, daß PHP hier $ortplz zu einem String castet (was auf "Münster" herausläuft).
Der String könnte dann wiederum als array von Zeichen interpretiert werden, mit [1] wird auf das zweite Zeichen zugegriffen.
kommt bei $ort:
Münster
Das ist logisch, Erklärung siehe oben.
und bei $plz:
Ã
Dass wäre nach meiner Vermutung auch irgendwie logisch.
heraus. Eigentlich sollte es die Postleitzahl sein!
Nein, die Postleitzahl kann es nicht sein, Erklärung siehe oben.
Ich hätte eher den Wert null erwartet (garniert mit einer Laufzeit-Warnung a la "Array Index out of bounds")
- kann es sein, daß das PHP-File utf8-kodiert ist, Du es aber als ISO-8859-1 betrachtest? ü sieht wie ein utf8-ü aus, das als iso-8859-1 betrachtet wird.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.