В прошлый раз я довольно много изучал PHP, и мне было любопытно, можно ли определить переменную без ее инициализации, как в C ++.
Ну, интерпретатор не выдает фатального ошибки (только замечание, что переменнаятест не определен), если я буду запускать этот код:
<?php
$test = (int) $test;
?>
И если я попытаюсь проверить его с помощью функции var_dump (), я получу:
int(0)
Я предположил, что интерпретатор автоматически приведётне определено в целое число.Ну, хорошо, это довольно умно.Но когда я удалил код, отвечающий за приведение типов, и проверил его с помощью функции var_dump (), я получил:
NULL
Хорошо, хорошо.Поэтому, когда я назначаю неопределенную переменную как неопределенную переменную, я получаю переменную с NULL.Я могу понять, переводчик делает это для меня в бегах.Но когда я пытаюсь что-то вроде этого:
<?php
var_dump($test);
var_dump($test);
?>
, я получаю два уведомления, что test не определен, но var_dump () возвращает NULL, а не undefined.И теперь я не понимаю.Если я отключу уведомления, функция var_dump () будет иметь тот же результат с неопределенными переменными и переменными, присвоенными NULL.И тут возникает вопрос из темы.Почему интерпретатор (или, скорее, функция var_dump ()) обрабатывает undefined и NULL как одно и то же?