我想发表if声明。如果数组$list[0]
,$list[1]
和$list[2]
不为空,那么我就足够了,以便我可以使用它们。
if(!empty($list[0]) AND !empty($list[1]) AND !empty($list[2])){
// do something
}else{
// output error and redirect
}
还有其他方法可以缩短上述if语句吗?还是足够好?
答案 0 :(得分:6)
保持简单。你可能会以看似“更聪明”的方式做到这一点,但事实上它可能只会使代码的可读性降低。
答案 1 :(得分:2)
如果您担心处理一般情况(任何长度的数组),那么依次检查元素的foreach()可能是更好的方法。
如果你正在处理一个你总是期望3个元素的特定情况,那么你正在做的事情很好。
答案 2 :(得分:0)
是否有可能,如果$list[0]
为空,其他两个也是空的?例如使用fgetcsv导入时,就是这种情况。那么,一个条件就适合了。如果没有,那么我会说你做得对。
AFAIk你可以删除空,因为NULL在条件中被视为FALSE。
答案 3 :(得分:0)
这是更简单的代码:
if(empty($list[0]) OR empty($list[1]) OR empty($list[2])){
// output error and redirect
EXIT;
}
// do something
答案 4 :(得分:0)
请注意,当值为零时,Empty也会返回false。 我们需要更多关于$ list即将提供更明智答案的信息。
答案 5 :(得分:0)
isset(...)可以处理多个参数 如果 isset()和empty()在您的情况下是可互换的(“确定变量是否设置且不是NULL”vs http://docs.php.net/manual/en/types.comparisons.php),您可以写
if ( isset($list[0], $list[1], $list[2]) ) {
...
答案 6 :(得分:0)
您可能希望首先过滤掉您的数组,以消除空值,因为您可能无论如何都不想要它们
$list = array_filter($list);
然后检查您是否有足够的值
if (count($list) > 2)
答案 7 :(得分:-1)
你写的代码非常好,但是如果你正在寻找替代方案......你可以做类似的事情:
$none_empty = true;
foreach($list as $array) {
if(empty($array)) {
$none_empty = false;
break;
}
}
if($none_empty) {
// do something
}else{
// output error and redirect
}
请告诉我这是否适合您;)