On Sun, May 6, 2012 at 8:40 AM, Devis Lucato <de...@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/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php