2017-09-13 45 views
2

中设置或不以易读的方式回显变量,只是有一个简单的问题。我想我知道答案,但我不希望。如何在PHP

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

所以这里有一个例子:

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

然后

echo "This is my number: " . $variable; 

如果$变量被设置为5,我想它打印“这是我的号码:5”,如果没有设置,我想它打印“这是我的号码:0 ”。

我知道我可以做这样的事情:

echo "This is my number: " . ($variable? : 0); 

但我仍然得到通知说$变量是不确定的,即使回波显示正确。

我也可以做这样的事情

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

但是这太多的代码,如果我这样做了很多。

+0

如果你打算将此echo语句后使用'$ variable'别的东西,它会更好检查它是否已设置并在echo语句之前将其设置为默认值一次。否则,您只需再次执行此isset检查/默认值设置。 (我不假设你不知道这一点,但似乎值得说不管。) –

回答

5

null coalescing operator是你最好的朋友。

echo "This is my number: " . ($variable ?? 0); 

空合并运算符可以作为PHP 7.0.0的。另一种方法是使用isset()ternary operator?:,在PHP 5.3.0的旧版本中使用。

echo "This is my number: " . (isset($variable) ? $variable : 0); 
+4

*最好的朋友只适用于PHP 7+ :) – ishegg

+1

@ishegg现在每个人都应该使用它。 – salathe

+0

@salathe不完全。 Ruby更好 –

2

尝试是这样的:

echo "This is my number: " . (isset($variable) ? $variable : 0); 

作品在PHP 5+