簡體   English   中英

使用三元運算符的最短if / else

[英]Shortest if/else using ternary operators

我有這段代碼:

<?=!empty($options["placeholder"]) ? $options["placeholder"]:'search...'?>

我的印象是我可以做到:

<?=!empty($options["placeholder"]) ?:'search...'?>

但是,當$options["placeholder"]不為空時,它返回1,因為它是三元運算符。

我是否必須始終發出兩次變量?

是。 但是,有許多請求想要更改此設置:

如果您可以確定將設置$options['placeholder'] (如果沒有,則可以在其前面加上@來抑制警告),則可以刪除empty用:

<?= $options["placeholder"] ?: 'search...' ?>

Elvis操作符 ?:計算結果為左側如果(它是truthy true時強制轉換為boolean值,如1或一個非空字符串'foo' )或右手側即使不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM