Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:20903 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 37724 invoked by uid 1010); 30 Nov 2005 17:23:33 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 37709 invoked from network); 30 Nov 2005 17:23:33 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Nov 2005 17:23:33 -0000 X-Host-Fingerprint: 66.84.34.109 s109.n34.vds2000.com Linux 2.4/2.6 Received: from ([66.84.34.109:38099] helo=tgaconnect.com) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 65/73-14828-510ED834 for ; Wed, 30 Nov 2005 12:23:33 -0500 Received: from [127.0.0.1] (163.sub-66-174-92.myvzw.com [66.174.92.163]) (authenticated) by tgaconnect.com (8.11.6/8.11.6) with ESMTP id jAUHNS806092 for ; Wed, 30 Nov 2005 12:23:29 -0500 Received: from unknown [70.192.15.98] by 66.174.92.163; 30 Nov 2005 17:13:50 +0000 Message-ID: <438DE008.7030000@tgaconnect.com> Date: Wed, 30 Nov 2005 12:23:20 -0500 Reply-To: tgales@tgaconnect.com User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: internals@lists.php.net Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: GOTO replacement statements From: tgales@tgaconnect.com (Tim Gales) I was wondering if it would be worthwhile to consider replacing the functionality of a 'goto' statement with two or maybe three statements. 'break_to' 'advance_to' and maybe even 'change_state_to' while($foo1) as LABEL1 { .... while($foo2) { ... if($var1) break; if($var2) break_to LABEL1; ... if($var3) advance_to LABEL2; ... .. } LABEL2: 'break_to' might make it easier for someone who has to review/maintain the code to spot it as a 'goto' replacement to break out of a nested loop. 'advance_to' would hopefully cut down on the number of bug reports claiming that 'jump' doesn't work properly (when trying to go backwards) Regards, Tim Gales