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