Justtechjobs.com Find a programming school near you






Online Campus Both


php-general | 2003022

Re: [PHP] Array instead of Switch From: David Otton (phpmail <email protected>)
Date: 02/21/03

On 22 Feb 2003 03:28:22 -0000, you wrote:

>Let's say I need to take one of 20 actions depending on a form selection. I
>could use a switch statement with 20 cases, but I could also do something
>like:
>
>// Pretend this comes from a form
>$formchoice = "mars";
>
>
>$response = array(
> "mars" => "go_mars()",
> "mercury" => "go_mercury()",
> "earth" => "go_earth()");
>
>foreach ($response as $choice => $action)
>{
> if (strtoupper($formchoice) == strtoupper($choice))
> {
> eval("$action;");
> }
>}
>
>But are there even better ways?

$formchoice = "mars";

go_planet ($formchoice);

Keep the high-levels of the script as simple as possible, push the
complexity down into functions where it's hidden from view.

Maybe go_planet() just calls go_mercury(), go_venus(), etc., or, more
likely, there's enough shared-functionality for only go_planet() to be
necessary.

Either way, you've replaced 11 lines in the main body of your script
with 1 line, and the next person to deal with your code will be
grateful.

[An OO programmer would probably create a planet object...

myPlanet = new Planet()
myPlanet.setType($formchoice)

or something, with the same end (hiding complexity) in mind.]

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