Page 1 of 1

Multi strings in Switch case [solved]

Posted: Mon Oct 17, 2005 9:16 am
by UndoUndo
is it possible to have multpiple strings in a switch case?

i.e

Code: Select all

switch($fruit){
case 'apple','banana':
// do this
break;

case 'melon':
case 'apple','banana':
// do this
break;

}

Posted: Mon Oct 17, 2005 9:17 am
by UndoUndo
// oops typo!!

Code: Select all

switch($fruit){
case 'apple','banana':
// do this
break;

case 'melon':
// do this
break;

}

Posted: Mon Oct 17, 2005 9:38 am
by Chris Corbyn
I always think this works (and looks) nice....

Code: Select all

switch($fruit){
case 'apple':
// do nothing yet but don't break
case 'banana':
//do this
break;

case 'melon':
// do this
break;

}

Posted: Mon Oct 17, 2005 9:44 am
by UndoUndo
nice thinking, i'll give it a go :D

Posted: Mon Oct 17, 2005 3:12 pm
by chrys
To answer the question, I'm pretty sure you can do case 1,2:

Posted: Mon Oct 17, 2005 5:59 pm
by Chris Corbyn
Parse error: parse error, unexpected ',' in /home/d11wtq/foo.php on line 25

Looks like not in PHP5 at least :(

The other way works though....

Code: Select all

function cascaded($x)
{
  switch($x)
  {
    case 0:
    case 1:
    case 3:
    echo "Multiple\n";
    break;
    case 2:
    echo "Single\n";
    break;
    default:
    echo "Default\n";
    break;
  }
}

echo '0 => '; cascaded(0);
echo '1 => '; cascaded(1);
echo '2 => '; cascaded(2);
echo '3 => '; cascaded(3);
Gives

Code: Select all

bash-2.05b$ php foo.php
0 => Multiple
1 => Multiple
2 => Single
3 => Multiple
bash-2.05b$

Posted: Mon Oct 17, 2005 6:14 pm
by chrys
Hmm, I know there's a way! :D