PHP在一行中包含多个比较条件



我有一个字符串的定义:

$string = $string1 .' / '.$string2.' / '.$string3;

如果所有字符串不存在,是否可以在一行条件下写入;0〃;?

if (!string1) {$string1="0";}
if (!string2) {$string2="0";}
if (!string3) {$string3="0";}

我试过类似的东西:

$string = !$string1 ? "0" : $string1.' / '.!$string2 ? "0" : $string2.' / '.!$string3 ? "0": $string3;

但这样做是行不通的。

我也试过用??:

$string = $string1 ?? "0" .' / '.$string2 ?? "0" .' / '.$string3 ?? "0";

您的上一次尝试非常接近,但您使用的三元运算符需要在每个测试周围加括号才能工作。

$string = ($string1 ?? "0") .' / '. ($string2 ?? "0") .' / '. ($string3 ?? "0");

你可以用两种方法

我做了一些小改动,在添加圆括号后,你的两个声明都有效。

$string = (!$string1 ? "0" : $string1).' / '.(!$string2 ? "0" : $string2).' / '.(!$string3 ? "0": $string3); 
$string = ($string1 ?? "0") .' / '. ($string2 ?? "0") .' / '. ($string3 ?? "0");

最新更新