Another similar way, using an array (very simple to 
add tasks):

  $tasks = array('ShowVersion','GetData','CreateImage');

  if (@in_array($_REQUEST['Task'], $tasks)) {
      // add some error checking here (function_exists())
      $$Task();
  } else {
      // maybe run a default task here
      print "unknown task";
  }

Am using @ in case 'Task' doesn't exist at all, so no 
error will be seen (undefined variables create E_NOTICE 
level errors).  Although you may want to check this before 
Task even reaches in_array(), with empty().  See also:

  http://www.php.net/error_reporting

$$Task() is a variable function:

  http://uk.php.net/manual/functions.variable-functions.php

And $_REQUEST is a PHP predefined/reserved variable that 
contains a mix of Get, Post and Cookie data.  This may or 
may not be appropriate here:
 
  http://au.phpz.net/manual/language.variables.predefined.php

On a sidenote (picky), consider making variables all 
lowercase. Also when printing a single var, no need to 
surround it with quotes.  print $foo.

Regards,
Philip Olson

On Fri, 31 May 2002, Christopher J. Crane wrote:

> I like this piece of code. In fact, I convert all my scripts that use the
> older If/Else  code. What would happen if the "break; " wasn't used. Would
> it just continue through the rest of the function to find another match???
> 
> "Miguel Cruz" <[EMAIL PROTECTED]> wrote in message
> [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > On Thu, 30 May 2002, Crane, Christopher wrote:
> > > if ($Task == "ShowVersion") { function ShowVersion(); }
> > > elseif ($Task == "GetData") { function GetData(); print "$DataOutput"; }
> > > elseif ($Task == "CreateImage") { function CreateImage(); }
> > > else { print "Incorrect Variable or no Variable Supplies<br>"; }
> >
> > if (isset($Task))
> > {
> >   switch($Task)
> >   {
> >   case 'ShowVersion':
> >     ShowVersion();
> >     break;
> >   case 'GetData':
> >     GetData;
> >     print $DataOutput;
> >     break;
> >   case 'CreateImage':
> >     CreateImage();
> >     break;
> >   default:
> >     print 'Unknown function';
> >   }
> > } else {
> >   print 'No function supplied';
> > }
> >
> >
> 
> 
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 



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

Reply via email to