Boyd, Todd M. schreef:
>> -----Original Message-----
>> From: Alice Wei [mailto:aj...@alumni.iu.edu]
>> Sent: Thursday, January 29, 2009 3:02 PM
>> To: php-general@lists.php.net
>> Subject: [PHP] Switch statement Question
>>
>>
>> Hi,
>>
>>   I have a code snippet here as in the following:
>>
>> //Switch statements between the four options
>> switch($string) {
>> case "":
>> $string= "NOT book.author='All'";
>> break;
>> default:
>> $string= $string . "AND NOT book.author='All'";
>> break;
>> }
>>   This code does work, but I am wondering if it is possible in the
>> switch statement clauses for me to do something like case does not
>> equal to a certain author name if I don't want $string with that
>> content to be processed. or, do I always use default in this case?
> 
> It's a bit non-conventional, but the switch block can be used like so:
> 
> switch(true) {
>       case (x < y):
>               dosomething();
>               break;
>       case (y == 0):
>               dosomethingelse();
>               break;
>       default:
>               somethingelseentirely();
>               break;
> }

some people really don't like this kind of thing (hi Robbert :-)),
either way beware that the equality test is not strict, that is
to say autocasting occurs (variable type doesn't have to match)

an example:

switch (true) {
        case 1:
                echo "did you expect this?\n"; // <-- this is output
                break;
        case true:
                echo "or this?\n";
                break;
}



> ...this way, your case statements can be expressions themselves, and it
> will always pick at least one of them to fire.
> 
> HTH,
> 
> 
> // Todd
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to