php教程技术文章
-
PHP 8.4 放开了析构阶段的 Fiber 切换,但循环 GC 可能使用 gc_destructor_fiber。本文解释版本边界、暂停后的对象回收条件和幂等清理方案。362 收藏 -
PHP 使用 stream_copy_to_stream 限制文件流复制长度时,应把字节上限传给 length,并区分 offset 起点、短流和 false 失败返回。359 收藏 -
SplPriorityQueue 是最大堆,同优先级元素的取出顺序没有稳定性保证。本文用可运行示例解释 compare 返回值、数组优先级和稳定顺序的实现边界。358 收藏 -
PHP-FPM 文件上传接口出现磁盘告警时,先从 upload_tmp_dir、is_uploaded_file、move_uploaded_file 和异常回收入手,建立可观测、可回滚的临时文件处理流程。357 收藏 -
PHP Attributes 适合给控制器声明路由和中间件元数据,但每次请求都反射扫描会放大开销。本文用纯数组描述、版本化缓存键和明确失效策略,整理一套可落地的缓存方法。357 收藏 -
同一浏览器打开多个页面时,PHP session 文件锁可能让本来独立的请求串行等待。本文用最小示例定位等待来源,并说明何时提前释放会话、哪些场景不能贸然释放。355 收藏 -
文章 · php教程 | 3星期前 | php教程 · PHP DatePeriod DatePeriod INCLUDE_END_DATE PHP 日期区间结束日期 PHP 日期周期边界 DatePeriod recurrences
PHP DatePeriod 按结束日期构造时默认排除结束日期,需通过 DatePeriod::INCLUDE_END_DATE 显式包含;本文用实际迭代结果解释 options、开始日期和 recurrences 的边界关系。355 收藏 -
PHP 8.5 将 chr() 接收 0 到 255 之外整数的行为标记为弃用。文章从字节输入、负数与大整数、编码边界和回归测试出发,给出兼容 PHP 8.5 的改造顺序。350 收藏 -
用 DateTimeZone::getTransitions 读取时区偏移变更,再结合 DateTimeImmutable 做缺口时间和重复时间的核对,避免把固定 UTC 偏移当成地区时区。348 收藏 -
本文梳理 PHP parse_url 解析相对地址时的可选字段、缺失键、null 与空字符串差异,并给出安全读取和入口分流写法。348 收藏 -
PHP 8.4 引入 Dom\HTMLDocument,用于按 HTML5 living standard 解析字符串或文件。本文从旧 DOMDocument::loadHTML 的兼容场景出发,演示 createFromString、HTML 命名空间、编码和回退分支的验收方法。347 收藏 -
文章 · php教程 | 1个月前 | 异常处理 · PHP · 版本迁移 · PHP 8.5 · 输入校验 · 输入校验 filter_input PHP 8.5 FILTER_THROW_ON_FAILURE 异常迁移
PHP 8.5 为 filter_var、filter_input 等过滤函数增加 FILTER_THROW_ON_FAILURE 标志,失败时从返回 false 改为抛出 ValueError。本文对比旧写法和新写法,说明 flag 组合、空值处理、异常边界与回归清单。347 收藏 -
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 收藏