-
PHP generators 可以用 yield 持续输出数据,再用 return value 表达处理完成后的最终结果。本文从流式数据与统计摘要的分工讲起,说明如何在遍历完成后调用 Generator::getReturn(),并处理未结束、无返回值和异常边界。
-
PHP ReflectionEnum 读取枚举 backing value 时,先用 isBacked 判断是否为 Backed Enum,再用 hasCase 和 getCase 找到目标 case,最后调用 getBackingValue 取得 string 或 int。本文同时说明 getBackingType、Unit Enum 和错误输入的处理边界。
-
PHP IntlCalendar 读取月份天数时,关键不是手动判断大小月,而是先确定日历和时区,再用 FIELD_DAY_OF_MONTH 调用 getActualMaximum()。本文说明月份字段、时区上下文、实际最大值与全局最大值的区别。
-
PHP PDO原生预处理与参数类型是两件事。本文以PDO_MYSQL说明关闭模拟、显式绑定分页整数与空值的写法,并区分输入验证、数据库转换和结果读取类型。
-
PHP SplFileObject 读取 TSV 时,关键是把制表符设置为单字节分隔符,并显式传入 escape 参数。本文用 READ_CSV 和 fgetcsv 两种写法说明如何逐行得到字段数组、按列访问数据,以及如何处理表头、空行和末尾行。
-
用 PHP PharData 遍历 tar 或 zip 数据归档时,关键是把 PharData、递归迭代器和 SplFileInfo 的职责分开。本文用 getFilename、getSubPathname 和 isDir 读取文件名、归档内相对路径与目录条目。
-
PHP 按字符截取中文等多字节字符串时,应启用 mbstring,使用 mb_substr 配合 mb_strlen,并显式传入 UTF-8。文章同时梳理扩展检查、长度边界、负数起点和 Emoji 等组合字符的适用范围。
-
DOMDocument::loadHTML 使用 HTML4 解析规则,遇到 HTML5 标签时不要把结果当成浏览器 DOM。本文按 PHP 版本给出 Dom\HTMLDocument 与旧版兼容路径的选择方法。
-
PHP Fiber 适合把需要等待外部结果的工作单元包装成可暂停任务。本文用 start、suspend、resume、throw 和 getReturn 说明调度边界,并强调 Fiber 本身不会自动把同步阻塞调用变成异步 I/O。
-
PHP 8.4 的 asymmetric visibility 可以把属性的读取和写入权限分开。本文用 public protected(set) 说明类外读取、子类写入的写法,并梳理类型、继承、引用和数组修改边界。
-
PHP XMLReader 以向前移动的游标读取 XML 文档,适合大型文件按目标节点流式处理。本文说明如何用 read 定位元素、用 next 跳过子树,并选择 readString、readOuterXml 或 expand 提取内容。
-
PHP 跨层处理异常时,把底层 Throwable 作为自定义异常构造函数的第三个参数传入,再用 getPrevious() 向下遍历,就能同时保留业务语义和原始原因。
-
PHP session 过期后的回跳应保存短期路由意图,而非恢复旧登录态。本文用服务端白名单映射和一次消费函数,解释重定向、POST、多标签页及目标授权边界。
-
讲清 PHP hash_equals 的参数顺序、长度边界与 hash_hmac 输出格式,给出回调签名校验的原创示例。
-
PHP DOMDocument 解析中文 HTML 时,应先确认输入字符串是 UTF-8,再给 HTML 明确编码提示,并让 saveHTML 输出与响应声明保持一致。本文还说明构造参数不负责自动转码,以及 PHP 8.4 Dom\HTMLDocument 的 HTML5 解析边界。