PHP 里所有可 throw 的对象都属于 Throwable。官方预定义分成两大类:Throwable├── Exception // 业务、逻辑、可预期异常(用户代码逻辑中应该捕获并处理的异常)└── Error // PHP 运行时错误(如语法错误、类型错误)Error 主线这是 PHP 7+ 最重要的预定义异常体Error├── ArithmeticError│ └── DivisionB...
一、传统做法(循环匹配)最常见写法:foreach ($keywords as $word) { if (mb_strpos($text, $word) !== false) { // 命中 }}假设:关键词数量:M文章长度:N时间复杂度接近:O(M × N)如果:文章 10KB关键词 5000 个那就是:5000 × 10000 = 5000万次字符比较而且还要重复扫描文本。二、Aho-Cora...
在 Nginx 中实现 条件式 PHP-FPM 路由,核心思路是:根据条件(如域名、变量、路径等)动态选择不同的 PHP-FPM 后端端口。 推荐方案:使用 map 实现条件分发(最规范)第一步:在 http 块中定义 maphttp { map $project $php_backend { default 127.0.0.1:9073; # 默认 PHP 7 test1 127.0.0.1:9...
PHP 8.5 是在 2025 年 11 月 20 日发布的一个重要版本,带来不少实用的新语法、库增强和调试/性能改进。下面按类别整理主要新特性: 1. 新语法 & 表达力增强 管道操作符(Pipe Operator |>)允许把上一个表达式的值通过管道传给下一个可调用函数,从左往右串联处理,代码更可读:$result = $input |> trim(...) |> s...
PHPStan 是一个 PHP 的静态分析工具,在不运行代码的情况下就能帮你发现潜在问题,比如:传错类型(把 string 传给接受 int 的函数)访问不存在的属性 / 方法null 没处理好永远不会执行到的代码数组 key/值类型不一致返回值不符合声明注释和真实类型不匹配它非常适合:想提升代码质量、减少线上 bug、统一团队风格的人(尤其是中大型项目)。一、PHPStan 有什么用(通俗点说)...