! $ var отличается от isset ()?

Я использую скрипт PHP, который показывает мне следующее предупреждение:

Undefined variable: _pagi_htaccess

Вот эта строка:

if (!$var){

Я сделал следующее изменение:

if (!isset($var)){

Предупреждения больше нет, но скрипт не работает. Перед изменением был выполнен код внутри if, теперь с! Isset, код выполняет else. Итак, я не понимаю разницу между! $ Var и! Isset ($ var)

1

Решение

как @Halfstop а также @Alex говорит. ! $ var является отрицанием $ var, $ var преобразуется в логическое значение, а затем вычисляется, если $ var равно true,! $ var равно false.

С другой стороны, isset ($ var) определяет, установлена ​​ли переменная и не является ли NULL, тогда, если у вас есть if (! Isset ($ var)), вы спрашиваете, не установлено ли и имеет ли значение NULL $ var.

1

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

Попробуй это:

if (isset($var) && !$var) {

Сначала проверяется, существует ли переменная, а затем, и только потом, проверяется, является ли она ЛОЖНОЙ.

Имейте в виду: это не хорошее программирование. Лучше выяснить, почему при определенных обстоятельствах $ var не существует. Это, вероятно, вызвано какой-то ошибкой кодирования.

2

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