catching exception using a variable passed by reference

From: Date: Sun, 06 May 2012 00:40:28 +0000
Subject: catching exception using a variable passed by reference
Groups: php.internals 
Request: Send a blank email to internals+get-60485@lists.php.net to get a copy of this message
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. 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!

« previous php.internals (#60485) next »