Der Martin: switch mit preg_match

Beitrag lesen

Hallo,

Liebe Mitleser, bitte erst die Richtigkeit kontrollieren, dann "fachlich hilfreich" kennzeichnen.

ich habe mich schon über einen neuen Fan gefreut. ;-)

In diesem Fall ist das nämlich nicht ganz gerechtfertigt, denn Der Martin hat sich geirrt. Er hat seine Betrachtung mit dem Inhalt von $var1 gemacht und kommt damit auf falsche Ergebnisse.

Stimmt, ich habe mich tatsächlich geirrt. Ich habe Codeausschnitt und Erklärung verkehrt zugeordnet. Die eigentliche Aussage bzw. die Erklärung ist aber in der Sache richtig, behaupte ich mal.

Seine Schlussfolgerung ist auch nicht ganz richtig, denn mit 1 (nicht true!) im switch-Ausdruck kommt man zum Ziel, denn preg_match liefert in genau einem Fall als Anzahl der Fundstellen eine 1.

Das fiel mir hinterher auch wieder auf, als ich die anderen Beiträge las, die in der Zwischenzeit eingetroffen waren. Allerdings ist mir diese Verwendung von switch/case immer etwas suspekt. Ich weiß, dass der case-Ausdruck in PHP (auch Javascript) tatsächlich ein Ausdruck sein kann, bin aber von anderen Sprachen wie etwa C/C++ gewöhnt, dass dort nur eine Konstante stehen darf. Entsprechend komme ich meist nicht auf den Gedanken, eine Konstante bei switch() zu notieren.

(Das heißt, mit true kommt man auch zum Ziel, aber nur, weil PHP noch eine Typkonvertierung von true zu 1 vornimmt (oder auch umgekehrt), die aber nicht notwendig ist, wenn man gleich die Zahlenwerte vergleicht.)

Richtig. Wobei ich noch nie verstanden habe, warum man extra einen Boolean-Typ definiert, obwohl der keine andere Aussage transportiert als die andernorts ersatzweise verwendeten numerischen Konstanten 0 oder 1 (oder allgemein 0 und !=0). Gut, in PHP hat man daraus insofern eine Tugend gemacht, als Funktionen einen numerischen Wert _oder_ false zurückgeben können, und das sogar unterscheidbar ist.

So long,
 Martin

--
Chef zum Bewerber: Es gibt zwei Dinge, auf die ich allergrößten Wert lege. Das eine ist Sauberkeit! Haben Sie übrigens die Schuhe auf der Matte abgetreten? - Ja, selbstverständlich. - Gut. Das andere ist uneingeschränkte Ehrlichkeit. Übrigens, draußen liegt gar keine Fußmatte.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(