大家好,我的if语句不起作用。我想基本上什么都不做是数组是空的,或者如果它有值,就做一些事情。即使我选择了额外内容,所有发生的事情都是“没有选择额外”
if (empty($extras)) {
$message .="<br /> No extras selected <br />";
} else {
foreach($_POST['extras'] as $extra)
{
$message .="<br />Extras: ".$extra."<br />";
}
}
答案 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 />";
}
目前,代码中的逻辑是向后的。