原文地址Even shorter ternary operators in PHP using ?:
今天我發現了PHP三元運算符的一個小小的用法. 這給我乾涸的大腦一點樂趣!
PHP 三元運算符是對參數賦值時候的一個簡潔的主要用法. 一個主要的用法: PHP 三元運算符能夠讓你在一行代碼中描述判定代碼, 從而替換掉類似以下的代碼:
<code><span><?php</span><span>if</span> (<span>isset</span>(<span>$value</span>)) { <span>$output</span> = <span>$value</span>; } <span>else</span> { <span>$output</span> = <span>'No value set.'</span>; }</code>
使用以下代碼替代:
<code><span><?php</span><span>$output</span> = <span>isset</span>(<span>$value</span>) ? <span>$value</span> : <span>'No value set.'</span>;</code>第二個程式碼範例是非常簡潔的用法, 在多種情況下(並非所有), 這是一個非常實用的用法. 有許多關於是否應該使用三元運算符的爭辯;讓我說, 這就是一個工具,向其他工具一樣, 只是用的正確與否.常用的語法是(expression) ? value if truthy : value if falsy.這個表達式可以是一個變數, 測試這個變數是真還是假:
<code><span><?php</span><span>$output</span> = <span>$value</span> ? <span>$value</span> : <span>'No value set.'</span>;</code>問題是: 以上的例子很常用同時也重複的有些煩人: 寫兩次$value 就像是感到錯誤一樣.好在是, 我今天發現在
PHP 5.3 中介紹了一個更簡潔的使用三元運算子的語法. 你可以從手冊中學到, 但是這裡我們怎麼樣讓上邊的例子更簡潔呢:
<code><span><?php</span><span>$output</span> = <span>$value</span> ?: <span>'No value set.'</span>;</code>這個看起來很熟悉, 這個是因為很像其他的簡寫運算符:
<code><span><?php</span><span>$value</span> = <span>$value</span> . <span>$other_value</span>;</code>轉換成:
<code><span><?php</span><span>$value</span> .= <span>$other_value</span>;</code>為了更簡潔, 這個意味著我們可以這樣簡寫並不意味著我們就應該這麼寫. 但是, 當我們寫簡潔代碼的時候, 這種方式會看起來更清楚, 我們應該這麼寫,
(而這個特性允許我們在多種情況下使用這個運算子[this feature allows us to DRY up the ternary operator in many cases])
以上就介紹了php 中較簡潔的三元運算子 ?:,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。