Что когда-либо схема, которую Вы используете, может быть удобно знать, что можно на самом деле переименовать выполнение .exe файл. Поэтому переименуйте файл, копию в новых хороших работах файла. И в следующий раз, когда кто-то запускает программу, они запустят новую версию. Это, конечно, очень удобно в среде, куда многие пользователи выполняют тот же .exe файл, как в случаях сервера/сетевого ресурса Citrix/терминала.
FTA:
"isset () проверяет, есть ли у переменной значение, включая (False, 0 или пусто строка), но не NULL. Возвращает ИСТИНА если var существует; ЛОЖЬ в противном случае.
С другой стороны, функция empty () проверяет, есть ли у переменной пустой значение пустая строка, 0, NULL или Ложь. Возвращает FALSE, если var имеет непустое и ненулевое значение. "
isset () не является эффективным способом проверки ввода текста и текстовых полей из HTML-формы
Вы можете переписать это как "isset () не является способом проверки input. " Для проверки ввода используйте расширение фильтра PHP . filter_has_var ()
сообщит вам, существует ли переменная, в то время как filter_input ()
будет фактически фильтровать и / или очищать ввод.
Обратите внимание, что вам не нужно использовать ] filter_has_var ()
до filter_input ()
, и если вы запросите переменную, которая не установлена, filter_input ()
просто вернет null
.
В самом общем виде:
isset
проверяет, существует ли переменная (или элемент массива, или свойство объекта) ( и не является нулем) empty
проверяет, содержит ли переменная (...) некоторые непустые данные.
Чтобы ответить на вопрос 1 :
$str = '';
var_dump(isset($str));
дает
boolean true
Потому что существует переменная $ str
.
И вопрос 2 :
Вы должны использовать isset, чтобы определить, существует ли переменная ; например, если вы получаете данные в виде массива, вам может потребоваться проверить, установлен ли ключ в этом массиве.
Подумайте, например, о $ _ GET
/ $ _ POST
.
Теперь поработаем над его значением, когда вы знаете, что такое значение существует: вот и работа из пусто
.
Достаточно использовать empty
:
if(!empty($variable)){
// Do stuff
}
Кроме того, если вам нужно целочисленное значение, возможно, стоит проверить, что intval ($ variable)! == ЛОЖЬ
.
isset($variable) === (@$variable !== null)
empty($variable) === (@$variable == false)
isset
предназначен для использования только для переменных, а не только для значений, поэтому isset ("foobar")
вызовет ошибку. Начиная с PHP 5.5, empty
поддерживает как переменные, так и выражения.
Итак, ваш первый вопрос должен быть таким, если isset
возвращает true для переменной, которая содержит пустой строкой. И ответ таков:
$var = "";
var_dump(isset($var));
Таблицы сравнения типов в руководстве по PHP очень удобны для таких вопросов.
isset
в основном проверяет, имеет ли переменная какое-либо значение, кроме null , поскольку несуществующие переменные всегда имеют значение null . empty
является своего рода частью счетчика для isset
, но также обрабатывает целочисленное значение 0
и строковое значение «0»
как пустое .