php空数组if语句

时间:2011-04-28 12:42:56

标签: php arrays

大家好,我的if语句不起作用。我想基本上什么都不做是数组是空的,或者如果它有值,就做一些事情。即使我选择了额外内容,所有发生的事情都是“没有选择额外”

if (empty($extras)) { 
    $message .="<br /> No extras selected <br />";
    } else { 
    foreach($_POST['extras'] as $extra)
    {
      $message .="<br />Extras: ".$extra."<br />";

    } 
    }

8 个答案:

答案 0 :(得分:4)

我认为这是一个错字,因为根据你的代码$extras从未设置过。

您应该使用

if (empty($_POST['extras'])) {

答案 1 :(得分:1)

可能$extras变量为空,但您正在遍历不同的$_POST['extras']

答案 2 :(得分:0)

我没有对此进行测试,但您可以尝试if(!isset($extras[0]))

答案 3 :(得分:0)

怎么样?
if ( empty($_POST['extras']) ) { ... }

您之前是否已声明$extras变量?

答案 4 :(得分:0)

if(!empty($array)){
//do something
}else{
//donothing

}

请试试这个....,....

答案 5 :(得分:0)

您也可以尝试使用is_array()功能。文档here

答案 6 :(得分:0)

如果您为代码中的$extras变量指定了一个空数组(例如$extras = array()),那么您实际上是在检查$extras的赋值,而不是长度分配给它的阵列。

这应该适合你:

if(count($extras) == 0) {  
    // Your code here...
}

答案 7 :(得分:0)

我认为你的代码应该是这样的:

if (array_key_exists('extras', $_POST) and // check that the element exists in the $_POST array
    !empty($_POST['extras'])) { // check that it is not empty
     foreach ($_POST['extras'] as $extra) {
        $message .="<br />Extras: " . $extra . "<br />";
     }
} else {
    $message .="<br /> No extras selected <br />";
}

目前,代码中的逻辑是向后的。