如果变量不为空显示变量而不重复变量名

时间:2015-06-30 18:01:58

标签: php if-statement syntax

您好,您知道在PHP中编写此方法而不重复变量名吗?

if($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
} else if($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
} else if($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];
}

当然你可以写

$a = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
$b = $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
$c = $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];

if($a) { echo $a; } else if($b) { echo $b; } else if ($c) { echo $c; }

这有点短,但我仍然想知道在没有可变重复的情况下编写它是否有一些语法上的好处。

由于" elseif"三元运算符无法解决问题。我想。

3 个答案:

答案 0 :(得分:4)

这应该适合你:

只需遍历所有要检查的索引,如果它们通过if语句就打印出来,例如

$indexes = ["blaBlaBlaBlaBlaBlaBlaBlaBlaBla", "evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla", "stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];

foreach($indexes as $key) {
    if($abcdefg[$key] !== "") {
        echo $abcdefg[$key];
        break;
    }
}

答案 1 :(得分:1)

您可以在if条件中执行变量声明:

if(($var = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]) !== "") {
    echo $var;
}

答案 2 :(得分:0)

如何宣布......嗯......功能性的功能?

function echoNotEmpty($s)
{
    if ($s !== '') echo $s;
}
echoNotEmpty($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]);
echoNotEmpty($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]);
echoNotEmpty($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]);

甚至更短:

echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];

我的意思是,如果你不想回复空字符串而你仍然回应它们,谁在乎呢?