今天我發現了PHP三元運算符的一個小小的用法. 這給我干涸的大腦一點樂趣!
PHP 三元運算符是對參數賦值時候的一個簡潔的主要用法. 一個主要的用法: PHP 三元運算符能夠讓你在一行代碼中描述判定代碼, 從而替換掉類似以下的代碼:
```
<?php
if (isset($value)) {
$output = $value;
} else {
$output = 'No value set.';
}
```
使用以下代碼替代:
```
<?php
$output = isset($value) ? $value : 'No value set.';
```
第二個代碼例子是非常簡潔的用法, 在多種情況下(并非所有), 這是一個非常實用的用法. 有許多關于是否應該使用三元運算符的爭辯;讓我說, 這就是一個工具, 向其他工具一樣, 只是用的正確與否.
常用的語法是 (expression) ? value if truthy : value if falsy.這個表達式可以是一個變量, 測試這個變量是真還是假:
```
<?php
$output = $value ? $value : 'No value set.';
```
問題是: 以上的例子很常用同時也重復的有些煩人: 寫兩次 $value 就像是感到錯誤一樣.
好在是, 我今天發現在 PHP 5.3 中介紹了一個更簡潔的使用三元運算符的語法. 你可以從手冊中學到, 但是這里我們怎么樣讓上邊的例子更簡潔呢:
```
<?php
$output = $value ?: 'No value set.';
```
這個看起來很熟悉, 這個是因為很像其他的簡寫運算符:
```
<?php
$value = $value . $other_value;
```
轉換成:
```
<?php
$value .= $other_value;
```
為了更簡潔, 這個意味著我們可以這樣簡寫并不意味著我們就應該這么寫. 但是, 當我們寫簡潔代碼的時候, 這種方式會看起來更清楚, 我們應該這么寫, (并且這個特性允許我們在多種情況下使用這個運算符[this feature allows us to DRY up the ternary operator in many cases])
- 一維數組操作方法
- 求得這個數組中各個元素之和
- 取出兩個數組中相同的內容
- 將數組元素組合為字符串implode
- 將字符串轉化為數組explode
- 逗號分割的字符串去重
- 一維數組增加某個值
- PHP從數組中找到指定元素的位置
- 二維或多維數組操作方法
- 根據某一個鍵值合并生成一個新的二維數組
- 二維數組變一維數組
- 二維數組取一個值變一維數組
- php二維數組合并及去重復的方法
- php數組根據某鍵值,把相同鍵值的合并最終生成一個新的二維數組
- 二維數組增加一個值
- 生成無限級樹算法
- sql2md SQL轉化為markdown語法
- PHP修改多維數組中的某個值
- 二維數組
- 省市區聯動的查詢
- PHP求某二維數組,某一列元素的最大最小值
- php 求二維數組的差集
- 按某個鍵值排序
- 基本知識
- 鍵名作為鍵值
- PHP中foreach的用法和實例
- PHP foreach 循環案例
- php5.3以后的foreach的&符號不建議使用
- PHP中判斷變量為空的幾種方法小結
- 判斷PHP數組是否為空的代碼
- php刪除數組中指定值的元素的幾種方法
- PHP刪除數組中的指定元素
- php數組函數序列之array_keys() - 獲取數組鍵名
- php 中更簡潔的三元運算符 ?:
- 函數
- 字符串函數
- 數組函數
- 實例
- 將 $arr 中age大于第一個大于30的人增加一項一條信息
- 強大的數組函數