On Fri, 2010-09-24 at 15:44 -0400, Steve Staples wrote: > this would be the same as: > (commented below) > > On Fri, 2010-09-24 at 15:30 -0400, tedd wrote: > > At 2:23 PM -0400 9/24/10, Bob McConnell wrote: > > > > > >A switch works when a single test can dispatch all possible branches. If > > >you have a series of tests where each looks for a different subset of > > >conditions, you need an elseif. > > > > > >Bob McConnell > > > > Bob: > > > > Not so, O'wise one. > > > > This will work: > > > > switch(1) > > { > > case $a > $b: > if($a > $b) > > /* whatever > > break; > > > elseif ($c == 1) > > case $c == 1: > > /* whatever > > break; > > > elseif($d == 'this works') > > case $d == 'this works': > > /* whatever > > break; > > } > > Granted, it's not the normal way a switch works in some other > > languages, but it does work in PHP. :-) > > > > All you have to remember, and same as with this switch, is that the > first match, will stop processing the rest of the stuff. > > Steve. > > > > > > Cheers, > > > > tedd > > > > -- > > ------- > > http://sperling.com/ > > > > > Actually, processing only stops at the first break statement, so in this example, it would run through to case 3: $var = 1; switch($var) { case 1: { echo 1; } case 2: { echo 2; } case 3: { echo 3; break; } case 4: { echo 4; break; } default: { echo 'default'; } } This would display '123' in the output. Thanks, Ash http://www.ashleysheridan.co.uk