php教程技术文章
-
如果这里要校验的是一个单独的嵌套对象,比如 { "adminEmail": "...", "forumName": "..." },而不是对象数组,那 @RestRequestParam 的 map 应该设为 false,同时继续保留 @ConstraintsCollection。原因其实很直接:它488 收藏 -
PHP json_decode 返回 null 不一定是语法错误,深层 JSON 超过 depth 时会产生 JSON_ERROR_DEPTH。本文用异常、错误码和轻量结构扫描区分问题,并给出生产环境的深度上限与排查写法。488 收藏 -
用 PHP mysqli 把 CSV 导入 MySQL 时,不要一次性读完整文件。本文用分批读取、参数绑定和事务回滚做一个可验收的小工具,并说明内存、重复数据和失败续跑的边界。487 收藏 -
PHP 8.5 的 NoDiscard 属性用于提醒调用方不要悄悄丢弃重要返回值。本文说明如何选择适用函数、添加提示、处理有意忽略的结果,并厘清接口、继承和 trait 的边界。486 收藏 -
PHP 处理中文字符串时,mb_str_split 的 length 按字符而不是字节计算。本文从 UTF-8 编码、固定长度切块、参数边界和 emoji 组合字符四个方面说明怎么写,避免中文被拆成乱码或长度判断失真。485 收藏 -
文章 · php教程 | 3星期前 | 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 8.2 的 readonly class 能把值对象的写入边界收紧到构造阶段,但它不等于深度不可变。本文用 Address 和 OrderSnapshot 说明构造、内部对象、clone 与继承限制。480 收藏 -
PHP 8.5 的 array_last() 可以直接取得数组最后一个值,空数组返回 null,且不依赖连续数字下标。本文用事件列表场景拆解非连续键、空值判断和 PHP 8.4 及更早版本的兼容写法。479 收藏 -
SPLFixedArray 适合固定长度、按整数下标顺序消费的批处理缓存,但不适合需要稀疏键、频繁扩容或复杂关联字段的场景。本文用可运行示例核对输入、校验、顺序读取和内存观测边界。477 收藏 -
本文从一个 PHP 文件上传后 $_FILES 为空的现场出发,逐步检查表单 enctype、字段名、上传大小限制、临时目录和错误码,给出可复用的排查与修复清单。476 收藏 -
PHP 8.4 为 round() 引入 RoundingMode 枚举和四种新舍入方向,同时把非法 mode 从静默回退改为 ValueError。本文用正负数、金额和负 precision 场景核对迁移边界。476 收藏 -
PDO::getAttribute 取不到值不等于驱动不可用。本文按驱动加载、连接身份、属性探测三层判断,并演示如何区分有效值、null 与 PDOException。476 收藏 -
PHP PDO 处理订单、库存等多条写操作时,应使用异常模式和显式事务边界:成功统一 commit,异常确认事务活动后 rollBack,并检查表引擎、驱动和 DDL 隐式提交风险。476 收藏 -
PHP 多进程同时写同一文件时,用同一个独立锁文件配合 flock(LOCK_EX) 保护完整临界区;本文讲清 fopen 模式、ftruncate、LOCK_NB、读取共享锁和异常释放。474 收藏