Re: catching exception using a variable passed by reference

From: Date: Sun, 06 May 2012 03:47:23 +0000
Subject: Re: catching exception using a variable passed by reference
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-60486@lists.php.net to get a copy of this message
On Sun, May 6, 2012 at 8:40 AM, Devis Lucato <devis@lucato.it> wrote: > Hi, > > I stumbled upon this code while working with a variable passed by > reference, I was wondering if someone could provide some feedback before > raising a ticket, just in case PHP (5.3.6) is doing what it's supposed to > do. > In the code below I would expect "catch" to change the variable as > an assignment would do, but that doesn't happen. > >  function foo(&$exception) >> { >>     try { >>         throw new Exception('foo error'); >>     } catch (Exception $exception) { >>         var_dump(gettype($exception)); >>         echo $exception->getMessage() . "\n"; >>     } >> } >> foo($error); >> var_dump(gettype($error)); > > > > Expected: > >> string(6) "object" >> foo error >> string(6) "object" > > > Current result: > >> string(6) "object" >> foo error >> string(4) "NULL" > > > > It looks like "catch" is creating a completely new variable in the scope, > also removing the existing one from it. Hi, could you file a bug at bugs.php.net? :) thanks > I appreciate this is an edge case, if not a bug is it worth adding it to > http://php.net/manual/en/language.exceptions.php or somewhere > under > http://www.php.net/manual/en/language.references.php ? > > > Thank you! -- Laruence  Xinchen Hui http://www.laruence.com/

« previous php.internals (#60486) next »