如果$ _POST为空多功能

时间:2012-07-04 17:52:50

标签: php post if-statement

我有以下$ _POST函数来检查' start',' middle'并且'结束'是空的。

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']))

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

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

有谁能告诉我这种形成的正确代码?

3 个答案:

答案 0 :(得分:4)

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

  • AND operatior
&&&将检查每个条件,如果一切都是真的,它将返回true ...

把它当成这个

if(FALSE && TRUE)

它将始终返回False,如果不执行,因为其中一个条件为false

  • OR运算符

||将检查第一个条件是否为真它将返回true否则检查第二个条件如果所有都为假(甚至不是单个为真),它将返回false。

再次遵循上一个例子

if(TRUE || False || False)

现在编译器检查第一个条件是否为真,它将忽略接下来的两个条件并返回true。

if(FALSE || FALSE || FALSE) - 这将返回false,因为所有都是假的

  • 逗号运算符

如果您操作员,那么将评估右侧的最后一个条件,如果为真,那么它将返回true,否则为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'])));

答案 1 :(得分:2)

您正在寻找类似的内容:

// 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
}

答案 2 :(得分:0)

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.');