# PHP中三元表達式如何寫
## 什么是三元表達式
三元表達式(Ternary Operator)是PHP中一種簡潔的條件判斷語法,它允許用一行代碼完成簡單的if-else邏輯。其基本結構如下:
```php
(條件) ? 表達式1 : 表達式2;
當條件為真時返回表達式1的值,否則返回表達式2的值。
$result = $condition ? $valueIfTrue : $valueIfFalse;
$age = 20;
$status = ($age >= 18) ? "成年人" : "未成年人";
echo $status; // 輸出"成年人"
三元表達式可以嵌套使用,但要注意可讀性:
$score = 85;
$grade = ($score >= 90) ? "A" :
(($score >= 80) ? "B" :
(($score >= 70) ? "C" : "D"));
注意:PHP中嵌套三元表達式是從右向左結合的,建議使用括號明確優先級
PHP 5.3開始支持省略中間表達式:
$result = $condition ?: $defaultValue;
等價于:
$result = $condition ? $condition : $defaultValue;
$config = $userConfig ?: $defaultConfig;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
echo "您有" . ($count ?: '無') . "條新消息";
$item['price'] = isset($item['discount']) ? $item['price'] * 0.9 : $item['price'];
// 正確寫法 \(x = (\)a ? \(b : \)c) + $d;
2. **可讀性下降**:過度嵌套會使代碼難以理解
```php
// 不推薦的寫法
$x = $a ? ($b ? ($c ? $d : $e) : ($f ? $g : $h)) : $i;
// 可能產生意外結果
$type = $isValid ? "valid" : false;
PHP 7引入了空合并運算符(??),可以簡化某些三元表達式:
// 傳統寫法
$username = isset($_GET['user']) ? $_GET['user'] : 'guest';
// PHP 7+寫法
$username = $_GET['user'] ?? 'guest';
三元表達式通常比等價的if-else語句稍快,但差異可以忽略不計。選擇時應以代碼可讀性為主要考量因素。
三元表達式是PHP中非常有用的語法糖,合理使用可以使代碼更簡潔。記住以下要點:
條件 ? 真時值 : 假時值
掌握三元表達式的正確使用方式,可以讓你寫出更優雅、更高效的PHP代碼。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。