dedlfix: switch rückgabe fraglich

Beitrag lesen

echo $begrüßung;

wenn ich folgender Funktion den Wert 0 übergebe, erhalte ich in meinem Array:
Mo, Montag statt So, Sonntag
case 1:
case "Mon":
Warum?

Du übergibst einen Integer-Wert. Das switch hat mit "Mon" einen Stringwert zum vergleichen. Der String wird zunächst implizit in einen Integer gecastet. (int)"Mon" ergibt 0, die Bedingung stimmt. Vergleiche dazu die PHP type comparison tables. Ein Typecast des übergebenen Wertes nach String hilft. Außerdem müssen die jetzigen Integer-case-Werte als String notiert werden, sonst ergibt ein unbekannter String-Wert Sonntag statt Fehler.

echo "$verabschiedung $name";