Re: re:Switch - Case Statement Questions
| From: | Ken Robinson | Date: | Fri, 16 Nov 2012 12:21:31 +0000 |
| Subject: | Re: re:Switch - Case Statement Questions | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-319713@lists.php.net to get a copy of this message | ||
At 07:10 AM 11/16/2012, Omar Muhsin wrote:
Hello, I was just wondering after writting the code in version 2 here below, it turns out in testing that it actually PHP is not validating the expressions instead always I get the first case. 1.Using nested if statement {THE INTENDED BEHAVIOR}:For the switch statement to work, you need to use "switch (true)"if ($count > 14) $boxes = 3; elseif($count > 7 && $count <= 14) $boxes = 2; else $boxes = 1;2. Using Switch {ALWAYS FIRST CASE!!!}// $boxes = 1; // switch ($count) { // case ($count > 14): // $boxes = 3; // break; // case ($count > 7 && $count <= 14): // $boxes = 2; // break; // case ($count <= 7): // default : // $boxes = 1; // break; // }
$boxes = 1;
switch (true) {
case ($count > 14):
$boxes = 3;
break;
case ($count > 7 && $count <= 14):
$boxes = 2;
break;
case ($count <= 7):
default :
$boxes = 1;
break;
}
BTW, you don't need the "break" statement at the end of the last case and you don't really need the "case ($count <= 7)" since that condition is what remains anyway.
Ken