Я обновляю старый код с PHP 4 до PHP 5 и часто вижу следующее:
if (!$variable) {
// for example...
$variable = "test";
}
Чтобы понять код, мне нужно знать, возможно ли было ранее в PHP 4 раза проверить наличие переменной, выполнив это.
Извините, но я не смог найти ответ на этот вопрос.
if (!$variable)
тесты если $variable
оценивает false
, Согласно главе Преобразование в логическое значение, многие вещи оценивают как false
:
Поэтому использование такого рода кода для проверки того, что переменная уже установлена, опасно. Кроме того, он будет генерировать уведомления, когда переменная используется, но не установлена.
Да, код будет выполняться с PHP 4. Но вы можете получить неожиданные результаты, когда $variable
установлен в 0
, пустая строка или строка '0'
,
Для более чистого кода, вы должны использовать Исеть:
if (!isset($variable)) {
// for example...
$variable = "test";
}
Согласно документации, isset
был введен с PHP 4.
Других решений пока нет …