Re: GOTO operator
| From: | Andrey Hristov | Date: | Fri, 30 Jul 2004 00:45:12 +0000 |
| Subject: | Re: GOTO operator | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-11634@lists.php.net to get a copy of this message | ||
Paul G wrote:
----- Original Message ----- From: "Andrey Hristov" <php@hristov.com> To: <ilia@prohost.org> Cc: <internals@lists.php.net> Sent: Thursday, July 29, 2004 8:00 PM Subject: Re: [PHP-DEV] GOTO operator --- snip ---no goto : other implementation function pseudocode() {Is the average Joe going to write parsers in the everydays work? Probablynot. how about: function pseudocode() {$a=allocate_resource_z(); $b=allocate_resource_y();$res=do_stuff(); if(!$res) goto err_out;$c=allocate_resource_x(); $res=do_more_stuff(); if(!$res) goto err_out;$d=allocate_resource_foo(); $res=do_even_more_stuff(); if(!$res) goto err_out;return true;err_out:free_resouce($a); free_resouce($b); if(isset($c)) free_resouce($c); if(isset($d)) free_resouce($c);return false;}
$a=allocate_resource_z();
$b=allocate_resource_y();
do {
$res=do_stuff();
if(!$res) break;
$c=allocate_resource_x();
$res=do_more_stuff();
if(!$res) break;
$d=allocate_resource_foo();
$res=do_even_more_stuff();
if(!$res) break;
return true;} while (0); free_resouce($a); free_resouce($b); if(isset($c)) free_resouce($c); if(isset($d)) free_resouce($c); return false; } andrey