я не мог понять, что представляет собой реальная разница между empty()
и $_POST["xxx"]==""
?
empty()
- это оператор (в отличие от любой функции, которую вы могли бы определить), которая не будет запускать E_NOTICE, если вызывается в переменной, которая фактически не определена. Таким образом, он также включает проверку isset
.
Определите, считается ли переменная пустой. Переменная считается пустой, если она не существует или ее значение равно FALSE. empty() не генерирует предупреждение, если переменная не существует.
Обратите внимание, что "equals FALSE" означает сравнение ==
, поэтому, например, пустые строки, строка, содержащая нулевой, пустой, пустой массив, считается пустой.
(return true)
:"" (пустая строка)
0 (0 как целое число)
0.0 (0 в качестве поплавка)
"0" (0 в виде строки)
НОЛЬ
ЛОЖНЫЙ
array() (пустой массив)
$ Var; (объявленная переменная, но без значения)
НО
$ _POST [ "ххх"] == ""
Возвращает true, когда $ _POST ["xxx"] является пустой строкой
if ($_POST["xxx"])
.isset()
будет означать, что он также не может бытьNULL
. @skobaljic Это вызвало быE_NOTICE
, хотя.