Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:11634 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96404 invoked by uid 1010); 29 Jul 2004 22:53:59 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 96380 invoked from network); 29 Jul 2004 22:53:58 -0000 Received: from unknown (HELO iko.gotobg.net) (80.168.8.116) by pb1.pair.com with SMTP; 29 Jul 2004 22:53:58 -0000 Received: from pd9e61a6e.dip.t-dialin.net ([217.230.26.110] helo=[192.168.0.32]) by iko.gotobg.net with asmtp (Exim 4.34) id 1BqJmm-0004XY-9M for internals@lists.php.net; Fri, 30 Jul 2004 01:54:04 +0300 Message-ID: <41099A18.6040004@hristov.com> Date: Fri, 30 Jul 2004 00:45:12 +0000 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a2) Gecko/20040627 X-Accept-Language: en-us, en MIME-Version: 1.0 To: internals@lists.php.net References: <20040729021337.73894.qmail@pb1.pair.com> <200407291117.09573.lpedretti@suserver.com> <200407291037.12396.ilia@prohost.org> <41098F91.3000606@hristov.com> <004801c475bd$812f3580$0200a8c0@rusko> In-Reply-To: <004801c475bd$812f3580$0200a8c0@rusko> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - iko.gotobg.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - hristov.com X-Source: X-Source-Args: X-Source-Dir: Subject: Re: [PHP-DEV] GOTO operator From: php@hristov.com (Andrey Hristov) Paul G wrote: > ----- Original Message ----- > From: "Andrey Hristov" > To: > Cc: > Sent: Thursday, July 29, 2004 8:00 PM > Subject: Re: [PHP-DEV] GOTO operator > > > --- snip --- > > >>Is the average Joe going to write parsers in the everydays work? Probably > > not. > > 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; > } no goto : other implementation function pseudocode() { $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