php教程技术文章
-
解释 PHP Session 文件锁让同一用户并发请求排队的原因,并用 read_and_close 与 session_write_close 缩短持锁区间,区分会话锁和数据库一致性控制。305 收藏 -
PHP 处理百万行 CSV 的关键不是把文件换成生成器语法,而是建立流式读取、单行编码规范化与异常旁路三个边界。本文给出可直接改造的 fgetcsv + Generator 写法,并解释 BOM、源编码、列数错误、空行、批量写入与内存反例。284 收藏 -
用 PHP Attribute 为控制器方法声明路由元数据,再通过 Reflection 生成一次性路由表,覆盖读取、缓存、HTTP 方法区分和重复路由冲突处理。413 收藏 -
PHP 枚举与数据库状态字段如果同时演进,最容易在重命名、删值和分批发布时产生漂移。本文给出稳定 backed value、集中映射、旧值兼容和分阶段迁移的完整做法。135 收藏 -
文章 · php教程 | 13小时前 | 协程 · 异常处理 · php教程 · 异常恢复 PHP Fiber Fiber suspend Fiber resume Fiber throw 可暂停任务
本文用 PausableTask 封装 PHP Fiber 的启动、挂起、恢复与异常注入,解释 start、resume、suspend、throw、getReturn 的双向数据语义,并处理可恢复异常和非法状态调用。246 收藏 -
PHP 8.5 将 PDO 驱动专属常量标记为弃用,本文按 MySQL、SQLite、PgSQL 等驱动整理替换代码、兼容边界与回归检查清单。162 收藏 -
通过一次预处理、明确事务边界和结构化异常上下文,定位 PDO 批量写入中的失败行,并安全保留 SQLSTATE、驱动错误码与原始异常链。417 收藏 -
PHP OPcache preload 在服务器进程启动时把类与函数载入持久内存,预加载实体不会像普通脚本那样随时间戳检查刷新。本文说明为什么改代码后必须重建 PHP-FPM 进程,以及如何做可观测、可回退的发布。104 收藏 -
PDO::FETCH_GROUP 与 PDO::FETCH_COLUMN 按位或组合后,可以把结果集第一列变成分组键,把第二列收集为每组的值列表。本文用可复用的 PHP 示例说明列顺序、第二参数和边界。217 收藏 -
PHP 7.3+ 可在 session_set_cookie_params 的 options 数组中设置 samesite。多数站点从 Lax 起步;Strict 更严格;确需跨站会话时才用 None,并同时启用 Secure。本文给出完整代码、响应头验证、故障处理和回滚清单。105 收藏 -
PHP 使用 stream_context_create 配置 TLS 时,应同时保留证书链校验与主机名校验。本文对比普通域名、按 IP 连接、私有 CA 和证书指纹场景,给出 verify_peer、verify_peer_name、peer_name 与 cafile 的安全写法。460 收藏 -
PHP WeakMap 的对象键不会增加对象引用计数;当外部最后一个强引用消失后,对象可被回收,对应条目也会自动移除。本文用派生元数据缓存示例解释机制、验证方式和常见隐藏引用。260 收藏 -
PHP Fiber 抛出异常后是否能再次 resume,取决于异常有没有被 Fiber 内部捕获:捕获后可以再次 suspend 并恢复,未捕获则 Fiber 已终止,不能继续 resume。481 收藏 -
PHP 8.4 属性钩子中,set 内用精确的同名属性语法写入的是背后存储,不会再次触发自身;本文还区分虚拟属性、动态访问和跨属性钩子带来的递归风险。136 收藏 -
PHP 8.4 的 mb_trim 可以按多字节字符安全地裁剪字符串两端。本文从全角空格未被 trim 删除的现象出发,讲清 characters 是逐字符集合而不是正则或范围表达式,并给出 UTF-8、自定义标记和兼容性处理示例。388 收藏