有没有办法不使用!在PHP中空三次?

问题描述 投票:3回答:8

我想发表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语句?还是足够好?

php if-statement
8个回答
6
投票

把事情简单化。你可能以看似“更聪明”的方式做到这一点,但事实上它可能只会使代码更不易读。


2
投票

如果您担心处理一般情况(任何长度的数组),那么依次检查元素的foreach()可能是更好的方法。

如果你正在处理一个你总是期望3个元素的特定情况,那么你正在做的事情很好。


0
投票

是否有可能,如果$list[0]为空,另外两个也是空的?例如使用fgetcsv导入时,就是这种情况。那么,一个条件就适合了。如果没有,那么我会说你做得对。

AFAIk你可以删除空,因为NULL在条件中被视为FALSE。


0
投票

这是更简单的代码:

if(empty($list[0]) OR empty($list[1]) OR empty($list[2])){
// output error and redirect 
EXIT;
}

// do something

0
投票

当值为零时,请注意Empty也返回false。我们需要更多关于$ list即将提供更明智答案的信息。


0
投票

isset(...)可以处理多个参数。 如果isset()和empty()在你的情况下可以互换(“确定变量是否设置且不是NULL”vs http://docs.php.net/manual/en/types.comparisons.php)你可以写

if ( isset($list[0], $list[1], $list[2]) ) {
  ...

0
投票

您可能希望首先过滤掉您的数组,以消除空值,因为您可能无论如何都不想要它们

$list = array_filter($list);

然后检查您是否有足够的值

if (count($list) > 2)

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

如果这对您有用,请告诉我;)

© www.soinside.com 2019 - 2024. All rights reserved.