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!