1

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

if (!isset($_POST['submitRequest'] || $_POST['submit']))

上面的代码提示和错误。请指教。

4

7 回答 7

3

尝试:

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
   //do something
}
于 2012-06-20T09:59:43.797 回答
0

详细说明一下:

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

这里重要的部分是:他们只检查变量,他们不能也不会评估表达式的结果。的使用||使$_POST['submitRequest'] || $_POST['submit']表达。结果只是临时计算的,不会存储在可以设置或为空的已定义变量中。

于 2012-06-20T10:17:28.817 回答
0

不,这是不可能的。您需要每个变量在其自己的 isset 函数中您不能将它们组合起来。

于 2012-06-20T10:00:55.227 回答
0

您可以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']).

于 2012-06-20T10:01:08.023 回答
0

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

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

于 2012-06-20T10:02:03.797 回答
0

这不是如何使用 or 运算符。你必须把它放在两个 isset 调用之间。

if ( ! isset($_POST['submitRequest']) || isset($_POST['submit']) ) { }

你总是必须好好看看语法。请记住,如果左侧条件或右侧条件为真,则 or 运算符用于使整个条件评估为真。因此,您始终需要在两个条件下使用 or 运算符。

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

if ( isset($_POST['username'], $_POST['password']) ) { }
于 2012-06-20T10:02:06.370 回答
0

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

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

if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){
   //do something
}
于 2012-06-20T10:04:45.197 回答