php教程技术文章
-
用 IntlDateFormatter 处理本地化日期时,真正容易出错的是格式器时区覆盖 DateTime 时区,以及 ICU 模式和 date() 模式不同。本文用 Asia/Shanghai 与 UTC 的可验证示例说明初始化、核对和边界处理。260 收藏 -
PHP PDO 的 FETCH_GROUP 适合把同一分类的多条记录聚在一起,FETCH_UNIQUE 则把唯一键映射成单条记录。本文用商品分类查询拆开两种结果结构、重复键覆盖风险、空结果验收与最小可运行写法。244 收藏 -
文章 · php教程 | 2天前 | pdo · php教程 · 数据库安全 · 预处理语句 · 参数绑定 · php pdo 命名参数 ATTR_EMULATE_PREPARES PDOStatement参数调用 HY093
关闭 PDO::ATTR_EMULATE_PREPARES 后,同一个命名参数在一条 SQL 中重复出现可能触发 HY093。本文用价格区间查询拆开 PDO::prepare、PDOStatement 参数调用与唯一占位符的边界,并给出可验证的改写方式。199 收藏 -
PHP 部署后页面仍返回旧逻辑,常见原因不是代码没上传,而是 OPcache 仍在复用旧脚本。本文围绕脚本时间戳检查、重新检查间隔、PHP-FPM 重载和 CLI 与 FPM 缓存隔离,给出一套可复核的上线流程。198 收藏 -
PHP 8.4 属性钩子适合做属性级归一化,但默认值、构造函数赋值和可空类型的执行边界很容易混在一起。本文用配置对象拆开初始化顺序,并给出可运行的验证与旧版本回退写法。198 收藏 -
PHP flock 能让同一文件的竞争请求排队,但它不会自动替业务去重。本文用一个可复现的并发脚本,拆解锁模式、临界区范围、异常退出和释放后的再次执行,给出检查与回滚方法。196 收藏 -
PHP 对象持久化从 __sleep/__wakeup 迁移到 __serialize/__unserialize 时,真正需要处理的是字段版本、缺失字段和不可信输入。本文用一个订单快照对象拆开保存格式、兼容恢复与验收边界。176 收藏 -
PHP Generator 使用 yield from 委托子迭代器时,外层遍历拿到的是 yield 值,子 Generator 的 return 值要等委托完成后通过 getReturn 读取。本文用可运行示例说明调用链、完成条件和常见误区。161 收藏 -
用 DOMXPath 读取 XML 时,节点查询、count() 和 string() 返回的类型不同。本文用最小 PHP 示例说明如何判断返回值、处理空节点集,并把结果安全地转换成业务字段。158 收藏 -
用一个可复现的 PHP Fiber 示例排查 start、suspend、resume 和 getReturn 的状态边界,避免重复恢复与未完成读取。149 收藏 -
文章 · php教程 | 7小时前 | php教程 · PHP会话 · SessionHandlerInterface · 数据库存储 · PHP会话 session_set_save_handler SessionHandlerInterface 数据库会话
把 PHP 会话从默认文件存储切到数据库时,真正容易出错的是回调顺序、原始序列化字符串和 gc 清理边界。本文用 SessionHandlerInterface 完成一套可核对的写入、读取、销毁与过期回收流程。134 收藏