php教程技术文章
-
讲清 PHP mysqli multi_query 如何用 more_results 和 next_result 遍历全部结果,并在切换前释放结果集、识别后续 SQL 错误。282 收藏 -
PHP 的 SplFixedArray 适合长度可预估、只使用连续整数索引的数据;普通 array 更适合关联键、动态追加、删除和丰富的数组函数。选择时应先看数据结构约束,再考虑内存与迁移成本。281 收藏 -
Composer 的 files 适合每次引入自动加载器时加载的函数文件,classmap 适合无法遵循 PSR-4 的类;普通命名空间类优先 PSR-4。本文用配置示例和边界表说明如何选择。277 收藏 -
用 PHP mb_substr 按 UTF-8 字符截取中文,区分 strlen 的字节长度,处理 mbstring、空值、省略号和边界测试。277 收藏 -
批量导入校验里,str_contains 的空字符串行为很容易把缺失字段和任意内容混在一起。本文从一条失败记录开始,拆解 trim、str_contains 与 empty 的判断边界,并给出可回退到旧版 PHP 的写法。276 收藏 -
parse_ini_file 的默认扫描模式会把 on、off、数字和常量按 INI 规则转换,配置读取如果直接依赖字符串就容易出现类型漂移。本文用同一份 PHP 配置比较 NORMAL、RAW 与 TYPED 三种结果,并给出生产读取边界。276 收藏 -
PHP backed enum 处理请求字符串时,应在输入边界先用 tryFrom() 判断合法性,非法值返回 400;可信内部值再使用 from(),JSON 默认输出 backing value。271 收藏 -
php://temp 会先把数据放在内存中,超过默认或自定义 maxmemory 阈值后转用系统临时文件。本文解释临时目录、memory_limit、流式写入和资源释放的边界。271 收藏 -
SplObjectStorage 用对象身份管理集合或对象到数据的映射。删除前先用 contains 确认目标,能把重复删除、错误对象和遍历期间修改这些边界分开处理;本文用一个观察者注册表示范安全的 detach 流程。270 收藏 -
文章 · php教程 | 1星期前 | session · php教程 · php SessionHandlerInterface session.use_strict_mode validateId
解释 PHP session.use_strict_mode 与自定义 session handler 的配合边界,给出 validateId、read、write、create_sid 和 updateTimestamp 的职责划分与数据库 handler 示例。269 收藏 -
Laravel 13 新增 AsVector Eloquent cast,把模型中的 PHP 浮点数组与 MariaDB 二进制向量、PostgreSQL 兼容文本值隔开,并为 MariaDB 向量距离查询转换绑定值。本文说明声明方式、跨数据库边界和常见反例。266 收藏 -
Composer 报平台依赖不满足时,先用 check-platform-reqs 检查生产机真实 PHP 与扩展,再对照 composer.json 的 require、config.platform 和 lock 文件定位差异,避免用忽略平台要求掩盖运行时问题。264 收藏 -
PHP PDO 不能用一个占位符直接绑定 IN 条件中的数组。本文用位置参数和命名参数说明如何按数组长度生成占位符,并处理空数组、整数类型和动态字段边界。263 收藏 -
文章 · php教程 | 1星期前 | 反射 · php教程 · ReflectionParameter getAttributes PHP attributes Attribute::IS_REPEATABLE 重复属性
PHP 重复 Attribute 不能靠读取端猜测,必须先在属性类声明中加入 Attribute::IS_REPEATABLE,再用 ReflectionParameter::getAttributes() 取得全部实例,并根据 getArguments 或 newInstance 的需要选择读取方式。261 收藏 -
讲清 PHP DateTime 的来源时区、目标时区与瞬时时刻,使用 setTimezone 和 DateTimeImmutable 完成不改变时间戳的时区转换,并给出偏移量、时间戳和夏令时回归检查清单。261 收藏