PHP一行多个比较条件

PHP multiple comparison conditions in one line

我有这样的字符串定义:

$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");