Multi strings in Switch case [solved]

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
UndoUndo
Forum Newbie
Posts: 6
Joined: Wed Oct 05, 2005 2:31 pm

Multi strings in Switch case [solved]

Post 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;

}
Last edited by UndoUndo on Tue Oct 18, 2005 4:22 am, edited 1 time in total.
UndoUndo
Forum Newbie
Posts: 6
Joined: Wed Oct 05, 2005 2:31 pm

Post by UndoUndo »

// oops typo!!

Code: Select all

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

case 'melon':
// do this
break;

}
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post 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;

}
UndoUndo
Forum Newbie
Posts: 6
Joined: Wed Oct 05, 2005 2:31 pm

Post by UndoUndo »

nice thinking, i'll give it a go :D
User avatar
chrys
Forum Contributor
Posts: 118
Joined: Tue Oct 04, 2005 9:41 am
Location: West Roxbury, MA (Boston)

Post by chrys »

To answer the question, I'm pretty sure you can do case 1,2:
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post 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$
User avatar
chrys
Forum Contributor
Posts: 118
Joined: Tue Oct 04, 2005 9:41 am
Location: West Roxbury, MA (Boston)

Post by chrys »

Hmm, I know there's a way! :D
Post Reply