Странное поведение, присвоение неопределенной переменной по ссылке

Я просто изучаю, как таблицы символов и контейнеры переменных работают вместе со ссылками. И я узнал, что

<?php    
   $a = & $b;    
?>

не выдает извещение "Неопределенная переменная: b in...", в то время как

<?php    
   $a = $b;    
?>

делает.

Зачем?

1 ответ

Решение

Из руководства: http://php.net/manual/en/language.references.whatdo.php

Примечание. Если вы назначите, передадите или вернете неопределенную переменную по ссылке, она будет создана.

Что касается того, почему, я бы просто предположил, что php выделяет память и присваивает $a и $b обоим взглядам на это место в памяти. Это документированное поведение, хотя.

Другие вопросы по тегам