Постановка задачи:
!isset($_POST['foo']) || $_POST['foo']
Псевдокод с wods:
NOT isset($_POST['foo']) OR $_POST['foo']
Не имеет более высокого связывания, чем оператор ИЛИ (http://php.net/manual/de/language.operators.logical.php).
То, что вы действительно спрашиваете: Всегда ли isset($_POST['foo'])
дает тот же результат, что и $_POST['foo']
?
Определение функции isset:
isset - определить, установлена ли переменная и не равна ли NULL
http://php.net/manual/en/function.isset.php
Следовательно, isset оценивается как false, только если переменная не существует и не равна нулю.
Автоматическое приведение к логическому:
Простая переменная в PHP в логическом условии оценивается в false
при следующих условиях:
- само логическое значение ЛОЖЬ
- целое число 0 (ноль)
- Поплавок 0,0 (ноль)
- пустая строка и строка "0"
- массив с нулевыми элементами
- специальный тип NULL (включая неустановленные переменные)
- SimpleXML объекты, созданные из пустых тегов
См .: http://php.net/manual/en/language.types.boolean.php. Как видите, во многих случаях это не одно и то же.
Что означает ваш код в словах: Если переменная имеет значение 0,0.0, "", "0", [] или пустой объект XML возвращает 1.