首頁  >  文章  >  後端開發  >  php 中較簡潔的三元運算子 ?:

php 中較簡潔的三元運算子 ?:

WBOY
WBOY原創
2016-08-08 09:29:28924瀏覽

原文地址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教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn