PHP 8+ 实用技巧三则:代码更优雅高效
随着 PHP 8.x 的普及,许多新特性能让日常开发事半功倍。下面分享三个能立刻提升你代码质量的技巧。
1. Null 合并运算符与赋值运算符
过去判断变量是否存在并赋默认值需要写 isset(),现在用 ?? 一行搞定:
$username = $_GET['user'] ?? 'guest';
PHP 7.4 还引入了 ??= 运算符,仅在变量为 null 时才赋值:
$config['timeout'] ??= 30; // 等价于 if (!isset($config['timeout'])) $config['timeout'] = 30;
2. 数组解包(Spread Operator)代替 array_merge
用 ... 展开数组合并,比 array_merge 更直观,且性能稍优:
$first = ['a', 'b'];
$second = ['c', 'd'];
$merged = [...$first, ...$second]; // ['a', 'b', 'c', 'd']
注意:仅适用于索引数组。如果是关联数组,推荐使用 array_merge 或 + 运算符。
3. 现代字符串函数:str_contains / str_starts_with
避免再写 strpos($haystack, $needle) !== false 这种反直觉的判断:
if (str_contains($email, '@')) {
// 包含@符号
}
if (str_starts_with($filename, 'IMG_')) {
// 以IMG_开头
}
命名参数也是 PHP 8 的亮点,调用函数时指定参数名,可跳过默认值,极大提升可读性:
array_fill(start_index: 0, count: 5, value: 10);
善用这些新特性,代码会变得更简洁、更易维护。快在你的项目中尝试吧!