php教程技术文章
-
PHP 登录时升级旧密码哈希,要先区分 password_hash 生成的哈希和历史自定义格式:前者验证成功后用 password_needs_rehash 判断,后者用原规则验证成功后立即改存 password_hash,并用旧值条件更新避免并发覆盖。125 收藏 -
PHP 同一用户的多个请求出现排队,常见原因是 session_start 持有会话锁。本文说明如何用 read_and_close 或 session_write_close 缩短锁范围,并处理关闭后的写入与并发覆盖。373 收藏 -
PHP 解析未加引号的 JSON 长整数时,可能因类型选择落入浮点数。本文用 JSON_BIGINT_AS_STRING 保留完整数字,并说明异常处理、数组返回和业务层字符串边界。220 收藏 -
PHP PDO 不能用一个占位符直接绑定 IN 条件中的数组。本文用位置参数和命名参数说明如何按数组长度生成占位符,并处理空数组、整数类型和动态字段边界。263 收藏 -
PHP 处理大 CSV 时用 fopen 和 fgetcsv 流式读取,按 [null] 识别空行,校验列数后逐条导入,避免一次性载入整文件。306 收藏 -
PHP GD 处理大图时,真正占内存的是解码后的像素面以及缩放时同时存在的源图、目标图。本文用像素预算、入口拦截、分阶段缩放和对象作用域,定位并降低缩略图处理的内存峰值。332 收藏 -
从 PHP 8.6 Closure optimizations RFC 出发,区分无状态闭包缓存、变量捕获和对象绑定,给出安全改写边界。150 收藏 -
文章 · php教程 | 1个月前 | postgresql · PHP · MariaDB · 向量数据库 · Laravel PostgreSQL MariaDB Laravel 13 AsVector 向量字段 Eloquent Cast
Laravel 13 的 AsVector 将 Eloquent 向量字段统一成 PHP 浮点数组,但 MariaDB 使用小端 float32 二进制、PostgreSQL 兼容实现使用 JSON 文本;理解写入、读取和查询绑定边界,才能安全迁移向量存储。250 收藏 -
PHP 8.6 闭包优化 RFC 只把无状态闭包缓存部分合入。本文从 static、变量捕获、static 变量和对象绑定四个边界说明旧项目如何判断是否适合升级。463 收藏 -
PHP 8.6 为 ReflectionProperty 增加 isReadable 与 isWritable。本文拆开 scope、object、hooks、readonly 和未初始化状态,说明检测结果能判断什么,以及为什么不能保证实际读写一定成功。465 收藏 -
围绕 PHP 8.6 已接受的会话安全默认值变更,核对 strict_mode、HttpOnly、SameSite 对旧项目登录、跨站回调和自定义会话处理器的影响。237 收藏 -
Laravel 13 新增 AsVector Eloquent cast,把模型中的 PHP 浮点数组与 MariaDB 二进制向量、PostgreSQL 兼容文本值隔开,并为 MariaDB 向量距离查询转换绑定值。本文说明声明方式、跨数据库边界和常见反例。266 收藏 -
Laravel 13 新增 Cloud Facade,可用 hosted 判断是否运行在 Laravel Cloud,用 usesManagedQueues 判断是否启用托管队列,并在确认配置后通过 queue 取得连接。本文给出边界清晰的封装方式与回退思路。439 收藏 -
PHP 8.6 将 Git 源码构建所需的最低 Autoconf 版本提高到 2.71。本文比较官方发布包、容器化构建和直接拉取源码三种路径,说明哪些环境需要升级以及上线前怎样检查。128 收藏 -
文章 · php教程 | 1个月前 | 反射 · PHP · PHP 8.5 · 兼容性 · php PHP 8.5 ReflectionAttribute DelayedTargetValidation 属性目标
PHP 8.5 的 DelayedTargetValidation 不是放宽属性规则,而是把内置属性目标的错误从编译阶段延后到反射运行阶段,适合维护跨 PHP 版本的库代码。159 收藏