2017-06-14 21 views
1

我想知道如果有一個值賦給我的變量一個更簡單的方法:PHP - 值賦值給一個變量只有當它不存在虛假

$foo = bar($baz);  // 'NULL' or '0' or '1' or '2' or ... 
$foo = $foo ?: 0;  // '0' or '1' or '2' or ... 

我的問題是$foo可或者是NULL或正整數,包括0

我希望它成爲0如果它的值是NULL,並保持它的值,如果它不是。

感謝您的回答。

編輯

所以我的問題是隻針對第二個我無法合併的2行。

+1

如果不能合併這兩條線,那麼如何更簡單這是否需要......? – deceze

回答

3

試試這個;)

$foo = intval($foo); 
0

也許你可以試試:

$foo = is_null($foo) ? 0: $foo; 
0

我不能合併兩行,所以我的問題是,只對第二個。

但它是一個可行的解決方案:

$foo = bar($baz) ?: 0; 

短版三元運營商的直接手段:採取從狀態值,如果它不會被轉換爲false

附:更好的方法是委託該邏輯運作。

0

試試這個

$ FOO =($富=酒吧($巴茲))? $ foo:0;

1

你可以這樣說:

if (null === ($foo = bar($baz))) 
    $foo = 0; 

如果您正在使用PHP7那麼你可以這樣做:

$foo = bar($baz) ?? 0;