php教程技术文章
-
DateTimeImmutable::setTimezone 会返回新对象,并保持原对象和底层时间点不变。本文用最小示例说明返回值接收、来源时区、时间戳验证、非法时区和夏令时边界。485 收藏 -
PHP stream_select() 返回 0 表示等待窗口内没有就绪流,不等于调用失败。本文用可读写流示例区分 0、正数和 false,说明引用数组、EOF、零超时轮询和总截止时间的处理边界。485 收藏 -
文章 · php教程 | 2个月前 | JSON · 数据校验 · 异常处理 · PHP · php json_decode JSON_THROW_ON_ERROR JSON_ERROR_DEPTH JSON_ERROR_SYNTAX
PHP json_decode 返回 null 时,先区分合法 JSON 的 null、语法错误、深度超限和编码问题,再用 JSON_THROW_ON_ERROR 与 json_last_error_msg() 留下可定位的异常证据。484 收藏 -
文章 · php教程 | 2个月前 | WEB开发 · 安全 · PHP · session · php session session.use_strict_mode session_regenerate_id 会话固定
PHP 会话固定防护不能只依赖一个配置项。本文从 session.use_strict_mode 的接收规则讲起,演示登录前后如何轮换 session_id,并说明旧 Cookie、并发请求和自定义 SessionHandler 的边界。483 收藏 -
PHP WeakMap 用对象作为弱键保存附加数据,对象不再被其他代码引用后,关联条目也可以自然消失。本文通过请求元数据缓存说明对象身份、引用关系、清理边界、常见误区和选型场景。482 收藏 -
PDO::quote 会按照底层驱动给字符串加引号并转义特殊字符,但驱动支持、连接字符集和返回 false 都是实际边界。本文对比字符串插值与 prepare 参数绑定,说明什么时候不该继续手写 SQL。482 收藏 -
系统迁移 PHP 8.4 隐式可空参数:区分可空与可选,覆盖普通参数、必填参数之前的默认 null、联合与交集类型、继承签名,并给出自动修复和回归清单。481 收藏 -
PHP Fiber 抛出异常后是否能再次 resume,取决于异常有没有被 Fiber 内部捕获:捕获后可以再次 suspend 并恢复,未捕获则 Fiber 已终止,不能继续 resume。481 收藏 -
PHP 8.2 的 readonly class 能把值对象的写入边界收紧到构造阶段,但它不等于深度不可变。本文用 Address 和 OrderSnapshot 说明构造、内部对象、clone 与继承限制。480 收藏 -
PHP 8.5 的 array_last() 可以直接取得数组最后一个值,空数组返回 null,且不依赖连续数字下标。本文用事件列表场景拆解非连续键、空值判断和 PHP 8.4 及更早版本的兼容写法。479 收藏 -
SPLFixedArray 适合固定长度、按整数下标顺序消费的批处理缓存,但不适合需要稀疏键、频繁扩容或复杂关联字段的场景。本文用可运行示例核对输入、校验、顺序读取和内存观测边界。477 收藏 -
PHP 日期解析不能只看 DateTimeImmutable 对象是否创建成功。结合 createFromFormat 和 getLastErrors,可以分别读取 warnings、errors,并兼容 PHP 8.2 之后无错误时返回 false 的情况,拦截 2026-02-30 这类自动进位输入。477 收藏 -
PHP 8.4 为 round() 引入 RoundingMode 枚举和四种新舍入方向,同时把非法 mode 从静默回退改为 ValueError。本文用正负数、金额和负 precision 场景核对迁移边界。476 收藏 -
PDO::getAttribute 取不到值不等于驱动不可用。本文按驱动加载、连接身份、属性探测三层判断,并演示如何区分有效值、null 与 PDOException。476 收藏 -
PHP PDO 处理订单、库存等多条写操作时,应使用异常模式和显式事务边界:成功统一 commit,异常确认事务活动后 rollBack,并检查表引擎、驱动和 DDL 隐式提交风险。476 收藏