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

If variable not empty display variable without repeating variable name

你好,你知道在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" 我觉得。

这应该适合你:

只需循环遍历所有索引,如果它们通过 if 语句,您想要检查并打印它们,例如

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

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

可以在if条件下做变量声明:

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

为……嗯……功能性声明一个函数怎么样?

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"];

我的意思是,如果您不想回显空字符串并且仍然回显它们,谁在乎呢?