如何在PHP中以易于阅读的方式回显我不知道的变量

And*_*dri 2 php variables isset

只是有一个简单的问题.我想我知道答案,但我希望不是.

我希望能够回显一个我不知道是否设置的变量.所以我想要一个默认变量,如果它没有设置,我不想检查它是否先设置.

所以这是一个例子:

我有一个$变量,我不知道是否设置.

然后

echo "This is my number: " . $variable;
Run Code Online (Sandbox Code Playgroud)

如果$ variable设置为5,我希望它打印"这是我的号码:5",如果没有设置,我希望它打印"这是我的号码:0".

我知道我可以这样做:

echo "This is my number: " . ($variable? : 0);
Run Code Online (Sandbox Code Playgroud)

但后来我仍然注意到$ variable是未定义的,即使echo正确显示.

我也可以这样做

if (!isset($variable)) 
{
  $variable = 0);
}
echo "This is my number: " . $variable;
Run Code Online (Sandbox Code Playgroud)

但是,如果我这么做的话,那就是代码太多了.

sal*_*the 5

空合并运算符是你最好的朋友.

echo "This is my number: " . ($variable ?? 0);
Run Code Online (Sandbox Code Playgroud)

从*7.0.0开始,可以使用null合并运算符.另一种用于旧版本的替代方案,可以使用isset()和使用.ternary operator ?:

echo "This is my number: " . (isset($variable) ? $variable : 0);
Run Code Online (Sandbox Code Playgroud)

  • *最好的朋友只适用于PHP 7+ :) (4认同)