On Sun, May 6, 2012 at 8:40 AM, Devis Lucato <[email protected]> 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