-
PHP 8.5 的 #[\NoDiscard] 可以在调用方忽略关键返回值时发出警告。本文用原创示例说明属性写法、(void) 与旧版本兼容方案,以及接口、覆盖方法和 trait 的边界。
-
PHP 8.5 的 clone() 可以在复制对象时用关联数组覆盖少量属性,未列出的属性继续从原对象复制。本文从 readonly 值对象的排查现场出发,说明 clone-with 的写法、__clone() 顺序、可见性边界和旧版本兼容方案。
-
PHP 8.5 的 Uri\Rfc3986\Uri::toString() 会按 RFC 3986 重组规范化 URI。本文用缓存键示例说明如何移除不参与服务端资源定位的 fragment、保留查询参数语义、增加键空间版本,并处理参数排序与异常输入边界。
-
PHP 8.5 的 |> 可以把连续的单输入转换写成从左到右的链式表达。本文从最小语法开始,给出标题清洗示例,再从输入边界、callable 控制、审计记录和迁移清单说明什么时候适合使用,避免把不受控回调和副作用硬塞进管道。
-
PHP 8.5 的 Uri\WhatWg\Url 可按浏览器风格解析相对 URL。本文比较解析方案,给出基准对象、resolve 与 parse 示例,解释末尾斜杠、查询和片段的差异,以及解析成功与业务允许的边界。
-
PHP mb_substr 按字符截取多语言文本,关键是明确 UTF-8 编码、start 起点和 length 长度。本文给出摘要截断写法,并说明负数参数、编码错误、表情符号和 substr 的边界。
-
PHP array_column 只能按列名读取一层数组键或对象属性,不能把 customer.name 当成嵌套路径。本文用订单对象说明如何用 array_map 显式访问嵌套属性、处理可见性和空值,并在需要时先扁平化再调用 array_column。
-
PHP fdiv 按 IEEE 754 处理浮点除法,除数为零时可能返回 INF、-INF 或 NAN。本文用结果分类、业务分支和 / 运算符对比说明如何安全处理这些特殊值。
-
PHP 8.5 升级到生产环境不能只看 php -v。本文按 CLI、PHP-FPM、队列和 Composer 平台依赖拆解扩展兼容检查,并给出迁移文档、灰度回归与回滚清单。
-
本文从参数、输出格式、验签比较和 PHP 版本边界四个方面说明 hash_hmac() 怎样生成带密钥摘要,并给出 hash_equals() 的安全验签写法。
-
PHP Locale::getPrimaryLanguage() 用于从 zh-Hant-TW、en-US 这类语言标签提取主语言代码。本文说明 intl 依赖、主语言与脚本地区的区别,以及空值、超长输入和 PHP 8.5 null 字节边界。
-
PHP PDOStatement::fetchObject() 可以把结果集的下一行映射为 stdClass 或指定类对象。本文用一个单行查询场景说明列属性赋值、构造参数、无结果返回和与 fetch 模式的选择边界。
-
PHP Closure::bindTo 会返回一个新的闭包副本,并分别通过 newThis 与 newScope 改变 $this 和类作用域。本文用一个小型对象场景说明 private/protected 可见性、返回 null、PHP 8.5 边界,以及 bindTo、bind、call 的选择。
-
PHP 中带有 __toString() 的类会隐式具备 Stringable。本文用原创示例说明为什么 string|Stringable 比单独 string 更适合接收可字符串化对象,以及严格类型、显式实现和返回值边界。
-
PHP 8.2+ 的 mysqli::execute_query 可以把带问号占位符的 SQL、参数数组和执行过程合并起来。本文说明参数如何对应、SELECT 结果怎样读取、写入语句如何判断受影响行数,以及快捷方法与手动 prepare 的选择边界。