本文目录导读:

截至2025年5月,PHP的辅助函数(主要在Laravel框架的Illuminate\Support\Str、Arr、Collection等类中,以及PHP原生)新增了一些常用功能,以下是主要新增的辅助函数(基于Laravel 11.x / 12.x 以及 PHP 8.4 最新特性):
Laravel 新增/增强的辅助函数
Str 字符串辅助函数
| 函数 | 说明 | 示例 |
|---|---|---|
Str::inlineMarkdown() |
将Markdown转换为行内HTML(无块级元素) | Str::inlineMarkdown('**加粗**') |
Str::toBase64() / Str::fromBase64() |
编解码Base64(更安全,URL友好) | Str::toBase64('hello') |
Str::substrCount() |
统计子串出现次数(支持多字节) | Str::substrCount('你好你好', '你好') |
Str::isAscii() |
检查是否纯ASCII字符 | Str::isAscii('hello') |
Str::squish() |
移除多余空白(保留单词间一个空格) | Str::squish(' a b ') |
Str::trim() / Str::ltrim() / Str::rtrim() |
支持多字节的trim | Str::trim(' hello ') |
Arr 数组辅助函数
| 函数 | 说明 |
|---|---|
Arr::map() |
类似array_map但保留键名 |
Arr::sortByMany() |
按多个字段/回调排序 |
Arr::toCssClasses() |
将数组转为CSS class字符串(条件class) |
Arr::join() |
连接数组元素(支持最后一个分隔符) |
示例:Arr::toCssClasses
Arr::toCssClasses([
'btn' => true,
'btn-primary' => $isPrimary,
'hidden' => false,
]);
// 结果:'btn btn-primary'
Number 数字辅助函数(Laravel 10+)
| 函数 | 说明 |
|---|---|
Number::format() |
格式化数字(千分位、小数位) |
Number::currency() |
货币格式化 |
Number::percentage() |
百分比格式化 |
Number::ordinalNumber() |
序数词(1st, 2nd, 3rd) |
Number::spellNumber() |
数字拼写(123 → one hundred twenty-three) |
Collection 集合新增方法
| 方法 | 说明 |
|---|---|
->dd() |
调试打印并终止 |
->dump() |
调试打印不终止 |
->glob() |
使用通配符匹配集合字符串 |
->sole() |
获取唯一元素,若多/无则抛异常 |
->higherOrderMessages() |
链式调用更简洁 |
PHP 原生新增辅助函数(PHP 8.4+)
PHP 8.4 及后续版本也增加了几个实用的原生函数:
| 函数 | 说明 | 版本 |
|---|---|---|
array_find() |
返回第一个满足条件的元素 | 4 |
array_find_key() |
返回第一个满足条件的键 | 4 |
array_any() |
任意元素满足条件返回true | 4 |
array_all() |
所有元素满足条件返回true | 4 |
fdiv() |
浮点数除法(不会抛出DivisionByZeroError) | 0+ |
mb_trim() |
多字节字符串trim | 4 |
mb_ltrim() / mb_rtrim() |
多字节左/右trim | 4 |
mb_ucfirst() / mb_lcfirst() |
多字节大小写转换 | 4 |
mb_str_pad() |
多字节字符串填充 | 4 |
示例(PHP 8.4):
$users = [
['name' => 'Alice', 'age' => 30],
['name' => 'Bob', 'age' => 25],
];
// 查找第一个年龄 > 26 的用户
$user = array_find($users, fn($u) => $u['age'] > 26);
// ['name' => 'Alice', 'age' => 30]
// 检查是否所有用户都成年
$allAdult = array_all($users, fn($u) => $u['age'] >= 18); // true
其他辅助函数增强
optional() 改进
Laravel 中可接受闭包:
optional($user, fn($u) => $u->profile?->bio)
retry() 增加指数退避
retry(3, function() {
// 可能失败的操作
}, 100, function($attempt) {
return $attempt * 200; // 自定义延迟
});
report() 支持多异常报告器
report(function($e) {
// 自定义报告逻辑
return false; // 返回false阻止默认报告
});
推荐用法
- 字符串操作:优先使用
Str::class方法(比原生更安全、多字节友好) - 数组操作:用
Arr::代替原生函数获得更好的键保留和链式体验 - 数字格式化:直接使用
Number::指定区域(locale) - PHP 8.4+:升级后可用
array_find等,减少foreach
如果你是想了解某个具体版本或某个框架(如Symfony、Yii)的新增辅助函数,请告诉我,我可以提供更针对性的内容。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播