-
线上执行 composer install --no-dev 后找不到类,通常不是命名空间突然失效,而是类被声明在 autoload-dev 或依赖只放在 require-dev。本文按依赖边界定位并修正。
-
本文介绍一种高效算法,用两个阶段扫描判断含 *(可作左括号、右括号或空字符)的字符串是否能构成合法括号序列,核心是贪心匹配与逆向补配结合。 本文介绍一种高效算法,用两个阶段扫描判断含 `*`(可作左括号、右括号或空字符)的字符串是否能构成合法括号序列,核心是贪心匹配与逆向补配结合。在 PHP 里,像
-
PHP 表单提交失败时,如果只在页面顶部显示一串错误,用户很难知道该改哪个输入框。本文用 session flash 保存一次性校验结果,再通过 aria-describedby 将错误消息绑定到对应字段,覆盖重定向、刷新、成功提交和无障碍检查。
-
PHP Closure::bindTo 不只是换一个 $this:newThis 决定对象,newScope 决定 private/protected 可见范围。本文用订单快照示例说明作用域切换、返回 null 的边界,以及测试中如何避免越过公开接口。
-
用 PHP 8 的 Attribute::TARGET_PROPERTY 标记字段,再通过 ReflectionClass 和 ReflectionProperty::getAttributes() 精确找到目标属性,最后读取参数或实例化自定义 Attribute。
-
用 PHP PharData 处理 tar 备份时,不能只检查压缩包能否打开,还要逐条校验归档路径,拒绝 ../、绝对路径和解包目录外的目标。本文给出打包、检查和安全解包的可运行边界。
-
用 DateTimeImmutable 和明确的 IANA 时区计算月末,避开直接加月份的月底溢出,并封装成可复用的 PHP 函数。
-
PHP 8.5 扩展了 #[\Deprecated] 的使用范围。本文用用户级方法、类常量和 trait 做一套可复查的弃用工作流,说明告警触发、Reflection 验收与旧版本兼容边界。
-
PHP 8.5 CLI 新增 --ini=diff,可以只显示偏离内置默认值的 INI 配置。本文用开发、测试和生产环境核对场景,说明它与 --ini、php -i 的区别、读取层次、对比方法和采用边界。
-
PHP 8.5 已引入 |> 管道操作符,适合把一连串单输入、单输出的处理写成从左到右可读的链。本文从后台内容标题清洗场景出发,对比嵌套调用与管道写法,说明适用边界、版本落地方式,以及不该为了新语法强行改造的几类代码。
-
IntlDateFormatter 格式化 DateTime 时使用的是 formatter 自己的时区,而不是 DateTime 对象的时区。本文用共享 DateTimeZone、规范输入和核对 timezone id 的方式,排查 PHP 国际化日期显示相差数小时的问题。
-
filter_input() 读取的是 PHP 从 SAPI 保存的原始外部输入,不会跟随脚本后续对 $_GET 的修改。本文用一个最小示例拆开两条读取路径,并说明什么时候改用 filter_var(),以及如何区分参数缺失、校验失败和有效的 0。
-
PHP 8.4 新增 mb_trim、mb_ltrim 和 mb_rtrim,可以按多字节字符安全清理首尾空白。本文用中文表单和 CSV 字段场景拆解全角空格、字符掩码、编码参数与 PHP 8.3 回退写法,给出可回归的边界检查。
-
Laravel 13 新增 Cloud Facade,可用 hosted 判断是否运行在 Laravel Cloud,用 usesManagedQueues 判断是否启用托管队列,并在确认配置后通过 queue 取得连接。本文给出边界清晰的封装方式与回退思路。
-
PHP 8.3 的 json_validate() 返回 false 时,不要只看布尔值。本文用 JSON_ERROR_UTF8 与 JSON_ERROR_SYNTAX 区分非法编码和结构错误,并说明 JSON_INVALID_UTF8_IGNORE 的取舍。