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