php教程技术文章
-
PHP match 未处理分支通常不是语法错误,而是严格比较没有命中且表达式没有覆盖全部输入。本文用 default、异常边界和类型检查给出一套排查方法。498 收藏 -
PHP PDO fetchObject 的第二个参数就是构造参数数组。本文从参数位置、构造顺序、FETCH_PROPS_LATE 和最小验证四个方面排查常见问题。496 收藏 -
PHP 8.5 的 |> 适合把单输入、单输出的纯函数按数据流从左到右串起来。本文用字符串转换示例说明 callable、箭头函数括号、多参数收口和不适用边界。490 收藏 -
文章 · php教程 | 3星期前 | php教程 · session.save_path PHP session_start PHP会话保存路径 session_save_path排查 PHP会话目录权限
PHP session_start 找不到保存路径时,先查看当前请求实际生效的 session.save_path,再区分配置层级、代码覆盖、目录权限和容器挂载问题,最后用绝对路径完成复查。489 收藏 -
说明 PHP WeakMap 如何用弱对象键保存派生缓存,避免缓存容器延长对象生命周期,并给出迁移写法、强引用排查和最小验证示例。487 收藏 -
PHP 8.5 的 NoDiscard 属性用于提醒调用方不要悄悄丢弃重要返回值。本文说明如何选择适用函数、添加提示、处理有意忽略的结果,并厘清接口、继承和 trait 的边界。486 收藏 -
DateTimeImmutable::setTimezone 会返回新对象,并保持原对象和底层时间点不变。本文用最小示例说明返回值接收、来源时区、时间戳验证、非法时区和夏令时边界。485 收藏 -
系统迁移 PHP 8.4 隐式可空参数:区分可空与可选,覆盖普通参数、必填参数之前的默认 null、联合与交集类型、继承签名,并给出自动修复和回归清单。481 收藏 -
PHP Fiber 抛出异常后是否能再次 resume,取决于异常有没有被 Fiber 内部捕获:捕获后可以再次 suspend 并恢复,未捕获则 Fiber 已终止,不能继续 resume。481 收藏 -
PHP PDO 处理订单、库存等多条写操作时,应使用异常模式和显式事务边界:成功统一 commit,异常确认事务活动后 rollBack,并检查表引擎、驱动和 DDL 隐式提交风险。476 收藏 -
PHP 8.3 起可以在 __clone() 中重新初始化 readonly 属性。本文用对象复制场景说明作用域、深浅拷贝、间接修改和版本兼容边界。473 收藏 -
PHP WeakMap 没有单独的生命周期配置项,条目是否消失取决于键对象是否还存在强引用。本文用最小复现和排查清单定位 count 不变化、条目提前消失等问题。472 收藏 -
文章 · php教程 | 1星期前 | JSON · 异常处理 · PHP · 接口调试 · php json_decode JSON_THROW_ON_ERROR JsonException JSON错误处理
PHP json_decode 默认失败时返回 null,排查接口数据很容易丢失来源和错误类型。本文用 JSON_THROW_ON_ERROR 捕获 JsonException,并设计安全的错误上下文、错误分类与处理边界。471 收藏 -
用 PHP backed enum 稳定映射数据库状态值,覆盖旧编码兼容、tryFrom 边界、分批回填与未知状态处理。461 收藏 -
PHP 使用 stream_context_create 配置 TLS 时,应同时保留证书链校验与主机名校验。本文对比普通域名、按 IP 连接、私有 CA 和证书指纹场景,给出 verify_peer、verify_peer_name、peer_name 与 cafile 的安全写法。460 收藏