php教程技术文章
-
文章 · php教程 | 6天前 | php教程 · PHP DatePeriod DatePeriod INCLUDE_END_DATE PHP 日期区间结束日期 PHP 日期周期边界 DatePeriod recurrences
PHP DatePeriod 按结束日期构造时默认排除结束日期,需通过 DatePeriod::INCLUDE_END_DATE 显式包含;本文用实际迭代结果解释 options、开始日期和 recurrences 的边界关系。355 收藏 -
用 DateTimeZone::getTransitions 读取时区偏移变更,再结合 DateTimeImmutable 做缺口时间和重复时间的核对,避免把固定 UTC 偏移当成地区时区。348 收藏 -
PHP 8.4 属性钩子可以把输入归一化放进属性声明附近,但它不会替代完整的业务校验。本文通过金额和状态字段,说明 set 钩子的触发边界、类型约束、异常处理与旧版本回退方式。347 收藏 -
PHP array_filter 不传 callback 时会按 empty() 语义过滤,0、"0"、false、null 和空字符串都可能被删除。本文拆开默认参数、显式回调、键名保留和 array_values() 重排的边界,避免清洗数据时误删有效零值。347 收藏 -
用 PHP Reflection API 检查联合类型参数时,先区分 ReflectionNamedType 与 ReflectionUnionType,再处理 nullable 标记,避免把 null、单类型和多类型混成一个判断分支。346 收藏 -
Composer 私有仓库认证应避开仓库内明文密钥。本文拆解 auth.json、COMPOSER_AUTH 环境变量、CI 注入和凭据轮换的边界,给出可验收的配置方式。345 收藏 -
PHP 启用 OPcache 预加载后,类定义会随 PHP-FPM 进程驻留。本文解释为什么普通缓存刷新不够,并给出配置确认、构建标记、FPM 重启和发布复查步骤。345 收藏 -
SplFixedArray 适合元素数量明确、需要固定索引边界的 PHP 场景。本文对比普通数组,说明容量、越界、遍历和 JSON 转换的实际边界,避免把它误当成通用性能开关。344 收藏 -
PHP Fiber::resume() 的参数会回到嵌套调用栈中的 Fiber::suspend(),而 Fiber 终止后的最终结果要通过 getReturn() 读取。本文用原创示例区分三种返回值,并对比 Fiber 与 Generator。344 收藏 -
PHP SplFixedArray 适合容量已知、整数索引连续且希望降低容器开销的场景;普通 array 更适合动态追加、字符串键和大量数组函数。本文用固定采样窗口示例说明两者的契约、越界处理和选择边界。337 收藏 -
Laravel 队列里同一订单任务重复执行,通常不是单一配置问题。本文从重复信号入手,按唯一键、失败重试、幂等记录和回滚顺序排查,并给出可验证、可撤回的处理方案。336 收藏 -
PHP GD 处理大图时,真正占内存的是解码后的像素面以及缩放时同时存在的源图、目标图。本文用像素预算、入口拦截、分阶段缩放和对象作用域,定位并降低缩略图处理的内存峰值。332 收藏 -
用 PHP XMLReader 按游标读取超大 XML,区分 read、next 和 expand 的职责,控制节点处理和内存释放边界。331 收藏 -
PHP DOMDocument 处理中文 HTML 时,loadHTML 的编码识别和 saveHTML 的序列化会共同影响实体表现。本文用最小示例拆开输入、解析、保存三段路径,并给出 PHP 8.4 Dom\HTMLDocument 的边界。329 收藏 -
Laravel 队列扣款任务要安全重试,需把数据库唯一键、事务提交时机、网关幂等键和查询优先策略放在同一条链路上,避免网络超时或 worker 重启造成重复扣款。326 收藏