語法: array range(int|string $start, int|string $end, int|float $step = 1)
$step 為步長(正數)// 1~10 整數
$numbers = range(1, 10); // [1,2,3,4,5,6,7,8,9,10]
// 0~20 偶數(步長 2)
$evens = range(0, 20, 2); // [0,2,4,6,8,10,12,14,16,18,20]
// 字母 A~Z
$letters = range('A', 'Z'); // ['A','B',...,'Z']
// 字母 a~z
$lower = range('a', 'z');
// 生成驗證碼字符池
$pool = array_merge(range('A','Z'), range('a','z'), range(0,9));
shuffle($pool);
$captcha = implode('', array_slice($pool, 0, 6));
語法: float round(float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP)
$precision:小數位數(可為負數,表示十位、百位…)$mode:PHP_ROUND_HALF_UP(預設)、PHP_ROUND_HALF_DOWN、PHP_ROUND_HALF_EVEN、PHP_ROUND_HALF_ODD$pi = 3.1415926535;
echo round($pi, 4); // 3.1416 (四捨五入)
echo round($pi, 2); // 3.14
echo round(3.5); // 4
echo round(2.5); // 3 (PHP_ROUND_HALF_UP)
echo round(2.5, 0, PHP_ROUND_HALF_EVEN); // 2 (銀行家捨入)
echo round(12345, -2); // 12300 (精度 -2 保留百位)
語法: list(mixed ...$vars): array(PHP 7.1+ 支援鍵名)
array_values()list($a, , $c) = $arr 跳過某些元素$info = ['coffee', 'brown', 'caffeine'];
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.";
// coffee is brown and caffeine makes it special.
// 跳過中間值
list($drink, , $power) = $info;
echo "$drink has $power."; // coffee has caffeine.
// 只取第三個
list(, , $power) = $info;
echo "I need $power!"; // I need caffeine!
$line = "John|Developer|Blue";
list($name, $job, $color) = explode('|', $line);
// $name='John', $job='Developer', $color='Blue'
// CSV 行解析
while (($row = fgetcsv($fp)) !== false) {
list($id, $username, $email) = $row;
// ...
}
[$a, $b, $c] = [1, 2, 3]; // 短語法
['name' => $name, 'age' => $age] = ['name' => 'Tom', 'age' => 20]; // 鍵名匹配
| 函數 | 用途 | 典型場景 |
|---|---|---|
| range() | 生成等差序列數組 | 下拉選單年份、驗證碼字符池、分頁頁碼 |
| round() | 浮點數精度控制 | 價格計算、統計報表、坐標縮放 |
| list() | 數組解構賦值 | CSV 解析、explode 分割、多返回值接收 |
善用這三個函數能讓代碼更簡潔、可讀性更強。