我怎樣才能使這一個或兩個線速記三元?PHP簡寫的if/else三元
if ($tame == null):
echo $tame = '0' . '<br />';
else:
echo $tame . '<br />';
endif;
我怎樣才能使這一個或兩個線速記三元?PHP簡寫的if/else三元
if ($tame == null):
echo $tame = '0' . '<br />';
else:
echo $tame . '<br />';
endif;
貌似OP期待$馴服是一個整數值。爲什麼他會爲零寫零?
如果是這種情況。這是最短的解決方案。
echo (int)$tame.'<br/>';
這將回顯0 null或數字值。也沒有理由將$ tame設置爲零,因爲PHP將null和zero視爲相同。
他並沒有真正暗示這一點,所以我們並不真正知道 –
確實如此,但我試圖變得聰明; ) – cgTag
如果他打算$ tame是一個整數,這將是最好的答案,但對於完整的解決方案,您仍然需要將它設置爲零,所以我會這樣做 - echo($ tame =(int )$ tame),'
';' –
$tame = ($tame == null) ? 0 : $tame;
echo $tame . '<br />';
echo $tame == null ? $tame = '0<br />' : $tame.'<br />';
他想也設置'$ tame'等於零。 –
@AustinBrunkhorst你是對的!固定。 「 – sachleen
echo ($tame == null ? ($tame = 0) : $tame), '<br />';
三元運營商基本上是在同一行的if..else
聲明。
if (condition) {
action(a);
} else {
action(b);
}
變爲:
action(condition ? a : b);
你有什麼是:
if ($tame == null) {
echo $tame = '0' . '<br />';
} else {
echo $tame . '<br />';
}
這可以寫成:
echo $tame == null ? $tame = '0<br />' : $tame . '<br />';
然而,這種三元說法是相對複雜,因爲$tame
正在發生變化,作爲聲明的一部分。以這種方式編寫的代碼很難閱讀,因此難以調試,這使得它更容易出錯。如果您在更詳細的形式寫的代碼這將是更好的整體:
if ($tame == null) {
$tame = '0';
}
echo $tame . '<br />';
」可以寫成..「 - 這將包括'$ tame'中的換行符,我認爲他不會這樣做。 –
@AustinBrunkhorst,這就是他會得到的是否他想要的東西。正如我所說:難以閱讀=困難調試=容易出錯 – zzzzBov
再來一個怎麼樣的方式:)
echo $tame . (!is_null($tame)?:'0'). '<br />';
,你可以看到我省略了中間環節,因爲PHP 5.3你可以做這樣的
三元部分而僅是需要被打印你仍然可以做這樣的老年人PHP的一部分
echo $tame . (is_null($tame)?'0':''). '<br />';
他也想設置'$ tame'等於零 –
如果$tame
爲空或一個整數,你完全可以跳過的邏輯:
echo sprintf("%d<br />", $tame);
這是假設你不是故意要在第二行分配給"0<br />"
$tame
,由@mellamokb指出。
您的意思是分配'0
''到$ tame'第一'echo'聲明? – mellamokb