使用或运算符提交表单的PHP isset

使用或运算符提交表单的PHP isset,php,forms,submit,form-submit,isset,Php,Forms,Submit,Form Submit,Isset,当有两个具有不同名称的提交按钮时,是否可以将“OR”操作符添加到php isset提交表单代码中? 例如: 上面的代码提示并显示一个错误。请提供建议。尝试: if(isset($_POST['submitRequest']) || isset($_POST['submit'])){ //do something } 不,不可能。每个变量都需要有自己的isset函数,您不能将它们组合起来。您可以对多个变量使用isset(): if(isset($_POST['submitRequest']

当有两个具有不同名称的提交按钮时,是否可以将“OR”操作符添加到php isset提交表单代码中? 例如:

上面的代码提示并显示一个错误。请提供建议。

尝试:

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
   //do something
}

不,不可能。每个变量都需要有自己的isset函数,您不能将它们组合起来。

您可以对多个变量使用
isset()

if(isset($_POST['submitRequest']) || isset($_POST['submit'])) {
    // One of them was pushed
}
将多个参数传递给
isset()
时要小心:

如果提供了多个参数,则仅当设置了所有参数时,isset()才会返回TRUE。计算从左到右进行,并在遇到未设置的变量时立即停止


所以
isset($\u POST['submitRequest'],$\u POST['submit'])
将等同于
isset($\u POST['submitRequest'])和&isset($\u POST['submit'])
。但是,如果您想检查
,第二句话可能很有用!isset($_POST['submitRequest'])| |!isset($\u POST['submit'])
。由于当传递多个参数时,
isset()
将为第一个未设置的参数返回false,因此可以使用
!isset($\u POST['submitRequest',$\u POST['submit'])

我知道我误解了原来的帖子

if(isset($_POST['submitRequest'])||isset($_POST['submit'])){
    // you can do something here
}
原件(不正确)

您可以使用以下选项:

if(!isset($_POST['submitRequest'], $_POST['submit'])){
    die("Fail");
}
如果提供了多个参数,函数将检查所有参数。仅当设置了所有参数时,才会返回TRUE


参考:

这不是使用or运算符的方法。你必须把它放在两个isset呼叫之间

if ( ! isset($_POST['submitRequest']) || isset($_POST['submit']) ) { }
您必须始终仔细查看语法。请记住,如果左条件或右条件为真,则or运算符用于使整个条件计算为真。因此,始终需要在两个条件下使用or运算符

此外,如果您想使用and运算符执行此操作,您可以只使用一个isset调用

if ( isset($_POST['username'], $_POST['password']) ) { }

您需要分别对各个变量调用isset函数。根据您遵循的约定,您可以选择使用这两种语法中的任何一种

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
   //do something
}

if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){
   //do something
}
详细说明一下:

isset()
empty()
和其他一些函数不是函数,而是语言结构。因此,根据它们看起来像函数的说法,它们并没有以人们可能期望的所有方式工作

这里重要的部分是:它们只检查变量,不能也不计算表达式的结果。
使用
| |
使
$\u POST['submitRequest']|$\u POST['submit']
成为一个表达式。结果仅临时计算,不存储在可设置或为空的已定义变量中

第二行代码仅在两者都设置时返回true。这将对应于
而不是
。是的,请阅读我上面的评论。“这正是我说的。”蒂诺凡德兰道歉。出于某种原因,我读了“or”而不是“and”。@PhpMyCoder没问题:)和Salman A,它们都只是使用逻辑的示例。不,第二个实际上考虑了两者。查看php.net/isset进行确认。如果(!isset($\u POST['submitRequest']))| |!isset($\u POST['submit'])我尝试了此操作,但不起作用:/如果其中一个变量未设置,它将返回失败。如果两个变量都未设置,则回显将失败。如果设置了其中一个参数,则回显将为true。是否要设置
true
当两个参数都设置时,两个参数都未设置,还是其他?您显示代码的方式令人困惑。我希望其中一件事情是真实的submitRequest或submitplease不要以丢失原始问题的方式编辑您的问题。对于后来发现此问题的用户来说,这是令人困惑的-答案与新问题不匹配
if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
   //do something
}

if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){
   //do something
}