php教程技术文章
-
PHP Fiber 中的恢复值和最终返回值不是同一个概念。本文用 start、suspend、resume、getReturn 和状态判断说明如何安全接收恢复入参,并在 Fiber 终止后读取回调 return。120 收藏 -
Composer 在生产环境通常应先用 --optimize 生成 classmap,再根据是否存在运行时生成类决定使用 authoritative classmap 或 APCu。本文围绕 dump-autoload 给出部署命令、取舍和最小检查清单。118 收藏 -
PHP IntlCalendar::fieldDifference 可以按年、月、日、小时等指定字段计算两个时刻的有符号差值。本文说明逐层调用顺序、对象变更、时区和月份边界,以及何时应改用时间戳差值。118 收藏 -
PHP 测量短代码耗时时,优先用 hrtime() 获取单调高精度时间,再用结束值减开始值并明确换算单位。本文说明数组与整数返回形态、与 microtime() 的区别、失败处理和性能采样边界。116 收藏 -
PHP 8.5 已移除 disable_classes。本文从运行入口、配置文件、CLI 与 PHP-FPM 差异出发,给出遗留配置定位、应用影响排查和替代策略,避免把旧的禁用类假设误当成当前运行时能力。115 收藏 -
PHP OptionsResolver 用 setAllowedTypes() 限制选项类型,用 setAllowedValues() 限制枚举或闭包业务规则;继承配置时用 addAllowedTypes() 和 addAllowedValues() 保留父类范围。本文给出组合写法、Symfony 7.3+ 联合类型边界和 InvalidOptionsException 排查方法。114 收藏 -
PHP match 表达式没有匹配到任何分支时会抛出 UnhandledMatchError,而不是像 switch 一样自然落空。本文对比 default、显式捕获和输入校验三种处理方式,并说明严格比较与范围判断的兼容边界。113 收藏 -
讲清 PHP hash_equals 的参数顺序、长度边界与 hash_hmac 输出格式,给出回调签名校验的原创示例。112 收藏 -
说明 PHP 从 JPEG 的 APP13 数据读取 IPTC 标签的方法,保留标签多值数组,并区分文件读取失败、缺少APP13和解析未取得数据等状态。112 收藏 -
PHP 导出 CSV 时不要用 implode 直接拼接字段。使用 fputcsv 让包含逗号、双引号和换行的字段自动加包围符,并显式把 escape 设为空字符串,避免 PHP 专有转义机制影响标准 CSV 兼容性。111 收藏 -
PHP PDO::ATTR_ORACLE_NULLS 控制取数阶段如何处理空字符串、NULL 与普通文本。本文比较三种模式,给出设置、读取和排查方法。109 收藏 -
PHP DatePeriod 配合 P1M 从 29、30 或 31 号开始时,后续月份可能出现日期漂移。本文解释原因,并给出固定到每月 1 号、需要月末时再显式计算最后一天的写法。109 收藏 -
用无外部 I/O 的最小 PHP Fiber 实验,区分挂起消息、恢复输入和最终返回值,解释 resume 返回 null 的原因,以及阻塞函数不会自动变成异步调用的边界。109 收藏 -
PHP MultipleIterator 默认要求所有子迭代器同时有效。本文用 MIT_NEED_ANY 和 MIT_KEYS_ASSOC 演示如何并排遍历长度不同的集合,并处理缺失字段、null、关联键名和边界条件。107 收藏 -
PHP fdiv 按 IEEE 754 处理浮点除法,除数为零时可能返回 INF、-INF 或 NAN。本文用结果分类、业务分支和 / 运算符对比说明如何安全处理这些特殊值。106 收藏