Доброго времени суток! вопрос по PHP наткнулся вот на такую особенность в PHP если написать вот такой код: <?php $x=$y; ?> то будет ошибка: Notice: Undefined variable: y in путь_к_файлу\имя_файла.php on line 2 что логично, ведь у нас $y ранее не была объявлена. Но если поставить амперсанд & так: <?php $x=&$y; ?> то всё нормально, нет никаких ошибок. хотя тут тоже $y не была ранее объявлена. Всё выглядит так как буд-то мы с помощью & объявили переменную $y и присвоили ей пустую строку. Вопрос1: есть ли в технической документации по PHP что-то на этот счёт? или это такое неописанное свойство, шаманство какое-то? и кстати это абсолютно эквивалентно (на этот счет тоже нет в технической документации ничего на счет того что с помощью global можно создать переменную со значением пустой строки ""): <?php function test() { global $y; // объявлена $y и ей ничего не присвоено } test(); $x=$y; //тут нет & print_r($GLOBALS); ?> Вопрос2: есть ли в технической документации по PHP что-то на этот счёт про global? или это тоже такое неописанное свойство, шаманство какое-то?
В первом случае происходит передача ссылки на переменную: $x=&$y; https://www.php.net/manual/ru/language.references.whatdo.php
спасибо! а вот этот случай описан в документации? (это эквивалентно тому что я выше написал один в один, тоже не присваиваем $y никаких значений). если описан, то можете ссылку дать? я не смог найти( <?php function test() { global $y; // объявлена $y и ей ничего не присвоено } test(); echo gettype($y); ?>