If that happens it would be great.
At 00:33 22/10/2001 -0500, Matt McClanahan wrote: >On Mon, Oct 22, 2001 at 02:57:44PM +1000, Brian White wrote: > >Preface to these ramblings: Exception handling is planned for the next >version of the Zend engine. For details, see > >http://www.zend.com/zend/future.php > > > The nasty thing then comes in that if any task fails, I have to stop. So I > > create a convention that every task returns "1" for success, "0" for > > failure. Tasks can also be nested. So this gives me a structure like > > this: > > > > if ( ! GrabLock() ) > > return 0; > > > > $retval = 0; > > switch(0){ default: > > > > if ( ! RunTask1() ) > > break; > > > > if ( ! RunTask2() ) > > break; > > > > if ( ! RunTask3() ) > > break; > > > > $retval = 1; > > } > > > > ReleaseLock(); > > return $retval; > > > > This works, but it is cumbersome, you have to be VERY careful and there are > > other complications in terms of reporting sensible error messages when > > tasks are shared. > >This is probably no less messy, but it does allow you to handle an >arbitrary number of steps, possibly with arguments, without having to >add another if check as you're doing above. This also lets you know >easilly which step failed: > ><? > >function first($a) { if ($a) return true; else return false; } >function second($a) { if ($a) return true; else return false; } >function third($a) { if ($a) return true; else return false; } > >function GrabLock() { echo "Grabbing.\n"; return true; } >function ReleaseLock() { echo "Releasing.\n"; return true; } > >$ret = true; >$funcs = Array('first','second','third'); >$args = Array(1,1,1); // Change one to zero to trigger a failure > >if (!GrabLock()) > return 0; > >while ($ret = $funcs[0]($args[0])) >{ > array_shift($funcs); > array_shift($args); > if (!count($funcs)) break; >} > >ReleaseLock(); > >if (count($funcs)) echo "Failed at $funcs[0].\n"; > >?> > >Matt > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] >To contact the list administrators, e-mail: [EMAIL PROTECTED] ------------------------- Brian White Step Two Designs Pty Ltd - SGML, XML & HTML Consultancy Phone: +612-93197901 Web: http://www.steptwo.com.au/ Email: [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]