一行PHP多个比较条件

Dar*_*ony -1 php comparison-operators

我有一个字符串的定义:

$string = $string1 .' / '.$string2.' / '.$string3;
Run Code Online (Sandbox Code Playgroud)

如果所有字符串不存在,是否可以在一行条件中写入它们,写“0”?

if (!string1) {$string1="0";}
if (!string2) {$string2="0";}
if (!string3) {$string3="0";}
Run Code Online (Sandbox Code Playgroud)

我试过类似的东西:

$string = !$string1 ? "0" : $string1.' / '.!$string2 ? "0" : $string2.' / '.!$string3 ? "0": $string3;
Run Code Online (Sandbox Code Playgroud)

但这样就行不通了。

我也试过??:

$string = $string1 ?? "0" .' / '.$string2 ?? "0" .' / '.$string3 ?? "0";
Run Code Online (Sandbox Code Playgroud)

Dav*_*ave 5

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

$string = ($string1 ?? "0") .' / '. ($string2 ?? "0") .' / '. ($string3 ?? "0");
Run Code Online (Sandbox Code Playgroud)

  • 是的,通过这种方式,加上括号,它最终可以按照nice_dev的建议工作。谢谢 (2认同)