Php 如果$\u POST为空,则多个函数

Php 如果$\u POST为空,则多个函数,php,post,if-statement,Php,Post,If Statement,我有下面的$\u POST函数来检查“开始”、“中间”和“结束”字段是否为空 if(!empty($_POST['start'])) { $description = "a sentence".$_POST['start']." with something in the START."; } if(!empty($_POST['middle'])) { $description = "a sentence".$_POST['middle']." with something in

我有下面的$\u POST函数来检查“开始”、“中间”和“结束”字段是否为空

if(!empty($_POST['start'])) {
   $description = "a sentence".$_POST['start']." with something in the START.";
}

if(!empty($_POST['middle'])) {
   $description = "a sentence".$_POST['middle']." with something in the MIDDLE.";
}

if(!empty($_POST['end'])) {
   $description .= "a sentence".$_POST['end']." with something in the END.";
}
我想检查一个函数中的值,换句话说,我想同时检查多个值。我见过一些方法,但不确定哪一种是正确的,使用逗号&|,如下所示

if(!empty($_POST['start']) , (!empty($_POST['middle']) , (!empty($_POST['end']))


有人能告诉我这种队形的正确代码吗?

您正在寻找的是:

// Establish valid post key values
$valid_post_variables = array_flip( ['start', 'middle', 'end'] );

// Fetch post data
$post = $_POST;

// $result will contain the values of post where the keys matched valid
$result = array_intersect_key( $post, $valid_post_variables );

// if the resulting array contains our 3 options, its go time
if ( count( $result ) == 3 ) {
     //start middle and end where all passed via POST
}

这里有一些基本的。。我把它作为一个评论(因为我不确定这是否是你要求的东西),但我想一个带有一些细节的答案是合适的

  • 操作员和操作员

&&将检查每个条件,如果所有条件都为true,则返回true

就这样吧

if(FALSE && TRUE)
它将始终返回False,并且由于其中一个条件为False,因此不会执行if

  • 操作员
| |将检查第一个条件是否为真,它将返回真,否则检查第二个条件如果所有条件都为假(甚至没有一个条件为真),它将返回假

再次遵循前面的示例

if(TRUE || False || False)
现在编译器检查第一个条件是否为true,它将忽略接下来的两个条件并返回true

如果(FALSE | | FALSE | | FALSE)
-这将返回FALSE,因为所有的值都是FALSE

  • 逗号运算符
如果运算符,则将计算右侧的最后一个条件,如果为真,则返回true else false

范例

if(True,True,True,False)  -  it will return false

if(FALSE, TRUE, FALSE, TRUE) - it will return true
因此,根据您的逻辑选择运算符

使用以下命令:

if((!empty($_POST['start'])) && (!empty($_POST['start'])) && (!empty($_POST['start'])));

这些价值观能结合在一起吗?或始终为一/无?将检查每个条件,如果所有条件均为真,则返回真。。。| |将检查第一个条件是否为真,它将返回真,否则检查第二个条件如果全部为假(甚至没有一个为真),它将返回假。。。。如果你,-然后右边的最后一个条件将被计算,如果它为真,那么它将返回true else false。您是否尝试过不同的方法来查看运行它们时会发生什么?我在某处看到了这些逗号或&&或| |函数,但我不知道如何在函数中使用它们,当我以上面给出的方式使用它们时,它会给我语法错误,什么是正确的使用方法,有人知道吗?我不这么认为,这看起来是另一回事。我已经有了处理函数,我只想使用一个“if”语句同时检查多个值。结果将是一个包含有效post选项的数组,感谢您的解释,但我仍然感到困惑。我想检查三个值‘start’、‘middle’、‘end’,如果所有这些函数都存在,则传递该值,否则将其留空。哪个选项适合我的情况?使用和(&&&),因为它会检查每个情况。谢谢。我想这就是我想要的功能<代码>如果(空($\u POST['start'])和空($\u POST['middle'])和空($\u POST['end']))我正在使用!为空,带有&&但在替换时出现语法错误!使用empty时,它停止给出语法错误,因此我希望它能正常工作。@user1444345如果((!empty($\u POST['start'])和(!empty($\u POST['start']))和(!empty($\u POST['start']),则使用此选项;谢谢,它也在工作。我想问题不是因为你!空的这就是方括号()的问题,通过添加方括号的数量,可以消除语法错误。
if(True,True,True,False)  -  it will return false

if(FALSE, TRUE, FALSE, TRUE) - it will return true
if((!empty($_POST['start'])) && (!empty($_POST['start'])) && (!empty($_POST['start'])));
function insertPost($before, $offset, $after)
{
    if(!empty($_POST[$offset])) {
         return $before . $_POST[$offset] . $after;
    }
    return '';
}

$description = insertPost('a sentence', 'start', ' with something in the START.');