В том, где буду я использовать isset () и! пустой ()

Что когда-либо схема, которую Вы используете, может быть удобно знать, что можно на самом деле переименовать выполнение .exe файл. Поэтому переименуйте файл, копию в новых хороших работах файла. И в следующий раз, когда кто-то запускает программу, они запустят новую версию. Это, конечно, очень удобно в среде, куда многие пользователи выполняют тот же .exe файл, как в случаях сервера/сетевого ресурса Citrix/терминала.

95
задан rath3r 28 August 2018 в 11:53
поделиться

6 ответов

isset vs.! Empty

FTA:

"isset () проверяет, есть ли у переменной значение, включая (False, 0 или пусто строка), но не NULL. Возвращает ИСТИНА если var существует; ЛОЖЬ в противном случае.

С другой стороны, функция empty () проверяет, есть ли у переменной пустой значение пустая строка, 0, NULL или Ложь. Возвращает FALSE, если var имеет непустое и ненулевое значение. "

122
ответ дан 24 November 2019 в 05:49
поделиться

isset () не является эффективным способом проверки ввода текста и текстовых полей из HTML-формы

Вы можете переписать это как "isset () не является способом проверки input. " Для проверки ввода используйте расширение фильтра PHP . filter_has_var () сообщит вам, существует ли переменная, в то время как filter_input () будет фактически фильтровать и / или очищать ввод.

Обратите внимание, что вам не нужно использовать ] filter_has_var () до filter_input () , и если вы запросите переменную, которая не установлена, filter_input () просто вернет null .

4
ответ дан 24 November 2019 в 05:49
поделиться

В самом общем виде:

  • isset проверяет, существует ли переменная (или элемент массива, или свойство объекта) ( и не является нулем)
  • empty проверяет, содержит ли переменная (...) некоторые непустые данные.


Чтобы ответить на вопрос 1 :

$str = '';
var_dump(isset($str));

дает

boolean true

Потому что существует переменная $ str .


И вопрос 2 :

Вы должны использовать isset, чтобы определить, существует ли переменная ; например, если вы получаете данные в виде массива, вам может потребоваться проверить, установлен ли ключ в этом массиве.
Подумайте, например, о $ _ GET / $ _ POST .

Теперь поработаем над его значением, когда вы знаете, что такое значение существует: вот и работа из пусто .

28
ответ дан 24 November 2019 в 05:49
поделиться

Достаточно использовать empty :

if(!empty($variable)){
    // Do stuff
}

Кроме того, если вам нужно целочисленное значение, возможно, стоит проверить, что intval ($ variable)! == ЛОЖЬ .

1
ответ дан 24 November 2019 в 05:49
поделиться
isset($variable) === (@$variable !== null)
empty($variable) === (@$variable == false)
1
ответ дан 24 November 2019 в 05:49
поделиться

isset предназначен для использования только для переменных, а не только для значений, поэтому isset ("foobar") вызовет ошибку. Начиная с PHP 5.5, empty поддерживает как переменные, так и выражения.

Итак, ваш первый вопрос должен быть таким, если isset возвращает true для переменной, которая содержит пустой строкой. И ответ таков:

$var = "";
var_dump(isset($var));

Таблицы сравнения типов в руководстве по PHP очень удобны для таких вопросов.

isset в основном проверяет, имеет ли переменная какое-либо значение, кроме null , поскольку несуществующие переменные всегда имеют значение null . empty является своего рода частью счетчика для isset , но также обрабатывает целочисленное значение 0 и строковое значение «0» как пустое .

11
ответ дан 24 November 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: