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!