php教程技术文章
-
外部字符串不能直接当作枚举 case 使用。本文用 PHP backed enum 的 from 与 tryFrom,拆开可信输入、非法值、缺省值和严格类型边界,给出可维护的字符串映射写法。445 收藏 -
array_column 使用 index_key 重建数组时,重复键不会自动合并记录,后来的值会覆盖前面的值。本文说明覆盖原因,并给出保留全部记录、保留最后一条和主动拒绝重复键的写法。221 收藏 -
mb_detect_encoding 编码候选判断教程:明确候选列表与严格模式,区分字节合法性、启发式猜测和来源事实,处理多候选、false 与乱码复查。421 收藏 -
PHP 8.3 新增的 json_validate() 只返回 JSON 语法是否有效,不构建数组或对象。本文讲清参数、错误信息、版本边界,以及何时不要先验证再解码。460 收藏 -
讲清 PHP stream_context_create 设置 HTTP 超时的嵌套位置、秒数单位、file_get_contents 返回值,以及超时和 HTTP 错误的排查边界。309 收藏 -
DOMDocument 处理 HTML fragment 时,普通 HTML 适合用临时根节点包装后解析,XML 兼容片段可以用 DOMDocumentFragment 和 appendXML。本文还说明 saveHTML、UTF-8、HTML4 解析规则与 PHP 8.4 HTML5 解析边界。377 收藏 -
PHP Fiber 中的恢复值和最终返回值不是同一个概念。本文用 start、suspend、resume、getReturn 和状态判断说明如何安全接收恢复入参,并在 Fiber 终止后读取回调 return。120 收藏 -
PHP 8.2 的 Randomizer 能通过固定随机引擎、种子和调用顺序生成可复现序列。本文比较 Mt19937、Xoshiro256StarStar 与 Secure 的使用边界,并给出测试隔离和常见误区。194 收藏 -
PHP 8.4 新增的 array_all 可以判断数组元素是否全部满足回调条件。本文用订单状态示例说明 value 和 key 参数、空数组返回 true、遇到 false 短路,以及旧版本兼容边界。229 收藏 -
PHP array_find 查找首个匹配元素教程:掌握回调参数、返回值与键的区别,处理 null、false 和0,提供旧版本 foreach 兼容写法。363 收藏 -
说明 PHP createFromFormat 使用 u 解析微秒时间,并处理默认字段、时区和错误结果。442 收藏 -
用 DateTimeImmutable 和 DateTimeZone 创建时区明确的不可变时间,覆盖构造器、格式解析、默认字段与时区转换边界。209 收藏 -
PHP 8.3 起可用 mb_str_pad 按 Unicode 字符数补齐中文等多字节字符串。本文说明右侧、左侧和两侧补齐的参数写法,以及多字符填充串、版本和显示宽度边界。166 收藏 -
PHP OPcache 脚本缓存与预加载的区别在于字节码复用和持久定义的生命周期。结合 PHP-FPM 配置、声明文件清单、低权限账户和进程换代,说明更新、审计与回滚边界。370 收藏 -
PHP Attribute 是否允许同一声明重复使用,要看属性类是否声明 Attribute::IS_REPEATABLE;实际反射时再用 ReflectionAttribute::isRepeated() 判断当前同名属性是否重复。321 收藏