Примечание для будущих читателей.
Этот ответ был основан на исходном сообщении, прежде чем вводить использование класса https://stackoverflow.com/revisions/36752382/1 и не помечен как дополнительное редактирование.
"а затем NULL"
- Который является нормальным поведение.
В руководстве по переменным основам http://php.net/manual/en/language.variables.basics.php
«Не надо инициализировать переменные в PHP, однако это очень хорошая практика. Неинициализированные переменные имеют значение по умолчанию их типа в зависимости от контекст, в котором они используются - booleans по умолчанию FALSE, целые числа и поплавки по умолчанию равны нулю, строки (например, используемые в echo) устанавливаются как пустая строка, а массивы становятся пустым массивом ».
Пример # 1 Значения по умолчанию неинициализированных переменных
<?php
// Unset AND unreferenced (no use context) variable; outputs NULL
var_dump($unset_var);
// Boolean usage; outputs 'false' (See ternary operators for more on this syntax)
echo($unset_bool ? "true\n" : "false\n");
- Примечание
outputs NULL
даже на неопределенной переменной.
"@mistermartin Я предполагаю, что я ожидал бы уведомление произойти при объявлении $ а, скорее, чем при попытке получить к нему доступ в var_dump ($ а) ;? - MonkeyZeus"
Это потому, что вы не пытались получить к нему доступ каким-либо образом, формой или формой.
Просто делать: (будучи действительным заявление, которое я мог бы добавить)
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$a; // Awaits further instructions. Won't complain till then.
не будет бросать уведомление, пока вы не вводить var_dump();
или любые другие действительные функций, которые могут использовать его.
- Подумайте об этом, поскольку газ на земле находится прямо у ваших ног. Это будет не очень хорошо, пока вы не представите освещенное совпадение (или Zippo).
Другим существом «эхо» без var_dump()
будет высылать уведомление, но без NULL.
т.е .:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo $a; // This will make it complain, as will var_dump($a); in its place.
метательный:
Примечание: Undefined переменной: а в /path/to/file.php на линии х
, что ваш вопрос? '$ a;' не является допустимым назначением. –
Во втором примере вы не установили '$ a' в' null', но это отображение по умолчанию при попытке получить доступ к неопределенному var. – AbraCadaver
@mistermartin Я предполагаю, что я ожидал, что уведомление произойдет при объявлении '$ a; ', а не при попытке получить к нему доступ в' var_dump ($ a); '? – MonkeyZeus