Der Martin: Zeichen in String eins höher zählen funktioniert nicht. Warum?

Beitrag lesen

Hallo Rolf,

TIL: PHP kann Strings inkrementieren 😲.

ich wusste das auch noch nicht, und halte dieses "Feature" für höchst fragwürdig.

$a = "123_Z";
$b = "123Z";
$c = "Z";

++$a;
++$b;
++$c;

echo "$a \n";    // 123_A
echo "$b \n";    // 124A
echo "$c \n";    // AA

Die Logik dahinter erschließt sich mir nicht. Versucht PHP tatsächlich, die semantische Bedeutung eines Strings zu erraten und das basierend auf dieser Semantik zu incrementieren?
Aber selbst wenn, dann geht das erste Beispiel doch komplett in die Binsen. Nach welcher Logik ist "123_A" der Nachfolger von "123_Z"?

Und was ist hiermit:

$s = "March";
$s++;
echo $s;

Wird hier etwa "April" ausgegeben? Wäre ja irgendwie logisch.
Ich habe auf die Schnelle kein PHP zur Hand, sonst würde ich es ausprobieren.

Man kann für jede einzelne der gezeigten Verhaltenweisen gute Gründe finden

Echt? Versuch's mal. Vor allem für den ersten Fall bin ich ratlos.

Live long and pros healthy,
 Martin

--
Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.