Почему переменная «NULL» вместо того, чтобы быть неопределенным?

Я ожидал увидеть уведомление, как Примечание PHP: Неопределенная переменная:, Однако, когда я запускаю этот код, он прекрасно работает. Более того, переменная становится NULL. Зачем?

<?php

function($a = 1) use (&$a) {};
var_dump($a); // NULL <---- Expected a Notice "undefined", got "NULL"

демонстрация

1

Решение

я думаю & оператор молча создает переменную, если она еще не существует. кажется, эта страница пытается объяснить это:
If you assign, pass, or return an undefined variable by reference, it will get created. поэтому, когда вы делаете use (&$a) , & видит это $a не существует, и создать его ..

что касается undefinedэто не настоящий тип в PHP. (в отличие, например, от javascript, который на самом деле имеет тип с именем undefined и отдельный тип с именем null)

почему ноль? При условии undefined не существует, это единственный логический выбор для начального значения, что вы ожидали инициализировать?

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector