Re: GOTO operator

From: 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 ---
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

« previous php.internals (#11634) next »