Загадка про PHP. Номер 9.

Загадка на ссылки и unset. Дано:

function a()
{
global $a;
unset($a);
$a = 2;
}

function b(&$a)
{
unset ($a);
$a = 2;
}

$a = 1;
a();
var_dump($a);

b($a);
var_dump($a);

Традиционно — что будет на экране?

Комментарии 4

Улитка № 1
На экране будет браузер. Или окно консоли, если вызов был через php.exe :-)
А функции выведут 2 и null.
Евгений Степанищев автор № 2
Функции выведут 1 и 1. unset уничтожает ссылку, а «global $a» эквивалентно «$a = &$GLOBALS['a']»

Кстати, на экране может быть и MySQL, например. :) Есть модуль, позволяющий вызывать PHP из MySQL.