php教程技术文章
-
PHP 8 起 ReflectionMethod::invokeArgs 会把字符串键解释为命名参数。本文用反射调用适配器说明位置键、命名键、默认值、引用参数和参数名变更的限制。315 收藏 -
PHP WeakReference::get() 在对象仍存活时返回对象,对象被销毁后返回 null。本文用缓存观察场景说明如何创建弱引用、立即判断结果,并避免读取后再次把对象长期持有。201 收藏 -
PHP SplFixedArray 适合容量已知、整数索引连续且希望降低容器开销的场景;普通 array 更适合动态追加、字符串键和大量数组函数。本文用固定采样窗口示例说明两者的契约、越界处理和选择边界。337 收藏 -
IntlDateFormatter 格式化 DateTime 时使用的是 formatter 自己的时区,而不是 DateTime 对象的时区。本文用共享 DateTimeZone、规范输入和核对 timezone id 的方式,排查 PHP 国际化日期显示相差数小时的问题。444 收藏 -
文章 · php教程 | 1星期前 | php教程 · PHP DatePeriod DatePeriod INCLUDE_END_DATE PHP 日期区间结束日期 PHP 日期周期边界 DatePeriod recurrences
PHP DatePeriod 按结束日期构造时默认排除结束日期,需通过 DatePeriod::INCLUDE_END_DATE 显式包含;本文用实际迭代结果解释 options、开始日期和 recurrences 的边界关系。355 收藏 -
mb_str_split 没有分隔符和 offset 参数。本文用 mb_substr、mb_strpos 与 preg_split 组合处理中文字符串的字符偏移、分隔符保留和边界情况。164 收藏 -
PHP 8.3 的 json_validate() 返回 false 时,不要只看布尔值。本文用 JSON_ERROR_UTF8 与 JSON_ERROR_SYNTAX 区分非法编码和结构错误,并说明 JSON_INVALID_UTF8_IGNORE 的取舍。439 收藏 -
PHP CLI worker 使用 pcntl_signal 做优雅退出时,重点是先确认 PCNTL 运行前提,再选择异步或手动分发,让 handler 只记录停止意图,最后由 finally 统一完成幂等清理。157 收藏 -
DOMXPath 查询带默认命名空间的 XML 时,直接写 //catalog/item 往往返回空结果。本文用原创 XML 示例说明如何注册 namespace URI、选择 XPath 前缀,并区分空 DOMNodeList 与 false 的排查路径。216 收藏 -
stream_copy_to_stream 返回字节数偏少时,先区分源流已到当前位置、length 限制、offset 语义和目标流失败。本文给出可复制的 PHP 排查代码与边界清单。123 收藏 -
PHP 并行 cURL 中 curl_multi_select 返回 0 通常表示等待超时而非请求失败。本文区分 0、-1 和正数,给出避免忙等、读取错误与回收句柄的排查方法。121 收藏 -
PHP WeakMap 没有单独的生命周期配置项,条目是否消失取决于键对象是否还存在强引用。本文用最小复现和排查清单定位 count 不变化、条目提前消失等问题。472 收藏 -
PHP readonly 属性排查指南:从 PHP 版本、类型声明和初始化作用域入手,定位重复赋值、引用修改、数组间接修改、对象内部可变与继承边界。104 收藏 -
PHP Fibers 没有独立开关,先检查 PHP 8.1+ 与 Fiber 类,再用 start、suspend、resume、throw 和状态方法定位挂起恢复问题。205 收藏 -
PHP match 未处理分支通常不是语法错误,而是严格比较没有命中且表达式没有覆盖全部输入。本文用 default、异常边界和类型检查给出一套排查方法。498 收藏