Mailinglisten-Archive |
Hi, > Patrick Mueller wrote on Sunday, July 29, 2001 11:15 AM > To: php_(at)_phpcenter.de > Subject: Re: [php] Hilfe: Mein SWITCH (TRUE) funktioniert nicht > > > Hi ! > > Du hast am Sun, 29 Jul 2001 10:25:52 +0200 folgendes getippert: > > > Das funktioniert nicht: > > switch (true) { > > case ( stristr($f1_url,"download") ): > > echo "teffer > > **************************************************************<br>"; > > break; > > default: > > $back = "unbekannter Fall: ".$f1_url; > > } > > Du hast die Benutzung von Switch noch nicht ganz verstanden, > deshalb: http://www.php.net/manual/de/control-structures.switch.php > > "... > Der case-Ausdruck kann eine Prüfung einfacher Typen sein, also von > Integer- oder Fließkomma-Zahlen oder von Strings / Zeichenketten. > Arrays oder Objekte können nicht benutzt werden, es sei denn, sie > werden auf einfache Typen herunter gebrochen..." > [...] Das Skript funktioniert. Der Fehler liegt nicht hier. Die Schreibweise switch (TRUE){ case (komplexer Ausdruck): ... } ist zulässig, weil zwischen den Resultaten ein einfacher Vergleich stattfindet, so wie es die Syntax erwartet. Die Beschreibung sagt auch nichts anderes. Denn der Ausdruck stristr($f1_url,"download") wird entweder FALSE oder die Fundstelle zurückgeben, was PHP in diesem Fall als TRUE interpretiert. Damit funktioniert switch in jedem Fall. Besser ist, die Umwandlung nicht PHP zu überlassen: case ((boolean) stristr($f1_url,"download") ): Ansonsten ist das aber unkritisch. Jörg -- E-Mail: joerg_(at)_krause.net Info: www.joerg.krause.net Hier gibt es die Infos: http://www.php.comzept.de NEU: Die Referenz PHP 4! http://www.php.comzept.de/referenz ----------------------------------------------------
php::bar PHP Wiki - Listenarchive