Можно ли добавить оператор «ИЛИ» в код формы отправки php isset, когда есть две кнопки отправки с разными именами? Например:
if (!isset($_POST['submitRequest'] || $_POST['submit']))
Приведенный выше код подсказок и ошибка. Пожалуйста посоветуй.
Можно ли добавить оператор «ИЛИ» в код формы отправки php isset, когда есть две кнопки отправки с разными именами? Например:
if (!isset($_POST['submitRequest'] || $_POST['submit']))
Приведенный выше код подсказок и ошибка. Пожалуйста посоветуй.
пытаться:
if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
//do something
}
Нет, это невозможно. Вам нужна каждая переменная в своей собственной функции isset. Вы не можете их комбинировать.
Это не то, как использовать оператор or. Вы должны поместить его между двумя вызовами isset.
if ( ! isset($_POST['submitRequest']) || isset($_POST['submit']) ) { }
Вы всегда должны внимательно смотреть на синтаксис. Помните, что оператор или используется для того, чтобы все условие оценивалось как истинное, если левое условие или правое условие истинно. Таким образом, вам всегда нужно использовать оператор или с двумя условиями.
Кроме того, если вы хотите сделать это с помощью оператора and, вы можете просто использовать один вызов isset.
if ( isset($_POST['username'], $_POST['password']) ) { }
and
, а не or
.
- person Bailey Parker; 20.06.2012
Вам нужно вызвать функцию isset для соответствующих переменных по отдельности. У вас есть возможность использовать любой из двух синтаксисов, в зависимости от соглашения, которому вы следуете.
if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
//do something
}
if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){
//do something
}
Вы можете использовать isset()
для нескольких переменных:
if(isset($_POST['submitRequest']) || isset($_POST['submit'])) {
// One of them was pushed
}
Будьте осторожны при передаче нескольких аргументов в isset()
. Как документы руководства:
Если указано несколько параметров, то isset() вернет TRUE, только если установлены все параметры. Оценка идет слева направо и останавливается, как только встречается неустановленная переменная.
Таким образом, isset($_POST['submitRequest'], $_POST['submit'])
будет эквивалентно isset($_POST['submitRequest']) && isset($_POST['submit'])
. Однако это второе предложение может быть полезно, если вы хотите проверить !isset($_POST['submitRequest']) || !isset($_POST['submit'])
. Поскольку при передаче нескольких аргументов isset()
вернет false для первого неустановленного, вы можете использовать !isset($_POST['submitRequest'], $_POST['submit'])
.
немного уточнить:
isset()
, empty()
и некоторые другие — это не функции, а языковые конструкции. Таким образом, они не работают во всех отношениях, как можно было бы ожидать, исходя из того, что они выглядят как функции.
Важная часть здесь заключается в следующем: они проверяют только переменные, они не могут и не оценивают результаты выражений. Использование ||
делает $_POST['submitRequest'] || $_POST['submit']
выражением. Результат рассчитывается только временно, а не сохраняется в определенной переменной, которая может быть установлена или пуста.
Я знаю, что неправильно понял исходный пост.
if(isset($_POST['submitRequest'])||isset($_POST['submit'])){
// you can do something here
}
Исходный (неверный)
Вы можете использовать это:
if(!isset($_POST['submitRequest'], $_POST['submit'])){
die("Fail");
}
Если указано несколько параметров, функция проверит их все. Это вернет TRUE, только если установлены все параметры.
Ссылка: http://php.net/manual/en/function.isset.php а>
TRUE
, когда оба установлены, оба не установлены или что еще? То, как вы показываете код, сбивает с толку. - person Alvin Wong   schedule 20.06.2012