php if 判断的问题。
程序员文章站
2022-03-15 12:58:00
...
有一段php的判断大家看看有没有更简洁的写法,或者别的方式可以实现
$cat_id = 0;
if(empty($a)){
if(empty($b)){
if(empty($c)){
return 0;
exit();
}else{
$cat_id = $c;
}
}else{
$cat_id = $b;
}
}else{
$cat_id = $a;
}
回复内容:
有一段php的判断大家看看有没有更简洁的写法,或者别的方式可以实现
$cat_id = 0;
if(empty($a)){
if(empty($b)){
if(empty($c)){
return 0;
exit();
}else{
$cat_id = $c;
}
}else{
$cat_id = $b;
}
}else{
$cat_id = $a;
}
$cat_id = $a ?: $b ?: $c ?: 0;
//对PHP版本有要求
喜欢这么写,没有嵌套
$cat_id = 0;
if($a) {
$cat_id = $a;
return;
}
if($b) {
$cat_id = $b;
return;
}
if($c) {
$cat_id = $c;
return;
}
return;
$cat_id = $a ? $a : ($b ? $b : ($c ? $c : 0));
$cat_id = 0;
if (!empty($a)) {
$cat_id = $a;
} elseif (!empty($b)) {
$cat_id = $b;
} elseif (!empty($c)) {
$cat_id = $c;
} else {
return 0;
}
function test($a, $b, $c)
{
if (empty($a)) {
if (empty($b)) {
if (empty($c)) {
return 0;
}
return $c;
}
return $b;
}
return $a;
}
$cat_id = test($a, $b, $c);
应该是没有更简单的写法了,但是可以优化成
$cat_id = 0;
if (! empty($c)) $cat_id = $c;
if (! empty($b)) $cat_id = $b;
if (! empty($a)) $cat_id = $a;
if (empty($cat_id)) exit;
function checkEmpty($a, $b = '', $c = ''){
if(empty($b) && empty($c)) exit();
return empty($a) ? checkEmpty($b,$c) : $a;
}
这个应该够简洁了!
$cat_id = 0;
while(1){
if(empty($a)){
$cat_id = $a;
break;
}
if(empty($b)){
$cat_id = $b;
break;
}
if(empty($c)){
$cat_id = $c;
break;
}
}
不写嵌套就行了
可读性强
以简驭繁
上一篇: Hibernate教程指南