php教程技术文章
-
PHP 8.3 起可用 mb_str_pad 按 Unicode 字符数补齐中文等多字节字符串。本文说明右侧、左侧和两侧补齐的参数写法,以及多字符填充串、版本和显示宽度边界。166 收藏 -
文章 · php教程 | 1星期前 | 反射 · 枚举 · php教程 · php backed enum ReflectionEnum::getBackingType 枚举反射 ReflectionNamedType
PHP ReflectionEnum::getBackingType 返回 backed enum 的 int 或 string 类型信息,纯枚举则返回 null。本文从反射判断、类型读取、元数据收敛和 PHP 8.2 返回类型边界四个方面说明稳定写法。166 收藏 -
PHP 8.4 属性钩子可以在属性边界集中处理校验、标准化和派生值,减少重复 getter/setter。本文用 backed 与 virtual 属性示例说明最小写法,并梳理 readonly、数组间接修改和构造器提升的边界。165 收藏 -
PHP 8.5 允许静态闭包和一等可调用出现在常量表达式中,属性参数因此可以直接承载校验器或处理器。本文从路由属性场景出发,拆开 PHP 8.4 与 8.5 的解析边界,并用 Reflection 和 CI 检查兼容性。164 收藏 -
mb_str_split 没有分隔符和 offset 参数。本文用 mb_substr、mb_strpos 与 preg_split 组合处理中文字符串的字符偏移、分隔符保留和边界情况。164 收藏 -
PHP strpbrk 会返回从首个匹配字符开始的后缀;要取得匹配字符之后的字符串,应先判断 false,再用 substr 从偏移 1 截取。本文覆盖多分隔符、空参数、大小写和 PHP 8 的错误边界。164 收藏 -
PHP 8.2 提供的 ini_parse_quantity 能把 ini 风格容量解析成字节,但非法单位会发出警告并按兼容规则解释。本文用配置校验器拆开单位换算、整数溢出和上线验收边界。163 收藏 -
Composer classmap 更新后仍找不到类,通常不是命令没执行,而是映射、命名空间、运行入口或部署目录仍有一处不一致。本文按故障现场拆解判断与修复步骤。162 收藏 -
PHP 8.5 将 PDO 驱动专属常量标记为弃用,本文按 MySQL、SQLite、PgSQL 等驱动整理替换代码、兼容边界与回归检查清单。162 收藏 -
PHP Generator 使用 yield from 委托子迭代器时,外层遍历拿到的是 yield 值,子 Generator 的 return 值要等委托完成后通过 getReturn 读取。本文用可运行示例说明调用链、完成条件和常见误区。161 收藏 -
PHP Composer 的 config.platform 会把 PHP 与扩展版本作为虚拟平台参与依赖解析,但不会改变本机运行环境。本文用 composer.json、check-platform-reqs、platform-check 和忽略参数说明解析阶段与生产运行阶段的边界。160 收藏 -
文章 · php教程 | 2个月前 | 反射 · PHP · PHP 8.5 · 兼容性 · php PHP 8.5 ReflectionAttribute DelayedTargetValidation 属性目标
PHP 8.5 的 DelayedTargetValidation 不是放宽属性规则,而是把内置属性目标的错误从编译阶段延后到反射运行阶段,适合维护跨 PHP 版本的库代码。159 收藏 -
IntlDatePatternGenerator 的骨架描述所需日期字段,地区规则决定字段顺序和分隔符。本文用 PHP 示例说明模式生成、显示格式与缓存存储的分工。159 收藏 -
用 DOMXPath 读取 XML 时,节点查询、count() 和 string() 返回的类型不同。本文用最小 PHP 示例说明如何判断返回值、处理空节点集,并把结果安全地转换成业务字段。158 收藏 -
文章 · php教程 | 2个月前 | 反射 · 单元测试 · php教程 · php ReflectionClass newInstanceWithoutConstructor ReflectionProperty isInitialized 遗留代码测试
PHP 反射可以创建一个不执行构造函数的对象,适合给遗留类做边界测试,但未初始化属性仍可能在读取时抛出 Error。本文用 ReflectionClass、ReflectionProperty 和 isInitialized() 演示安全的测试夹具写法。157 收藏