php教程技术文章
-
PHP backed enum 会把 case 的显式 value 作为 JSON 标量输出。本文用字符串枚举说明定义、序列化、反序列化和自定义 JsonSerializable 的边界。258 收藏 -
文件下载接口不能只判断文件是否存在,还要校验当前用户是否拥有资源、链接是否过期以及访问是否留痕。本文用 PHP 构建一条资源归属校验、短时签名和审计日志连贯的下载链路,并给出回归检查与回滚边界。257 收藏 -
用 PHP 8.4 的 public private(set) 拆分属性读写权限,让订单状态对外可读、类内可写,并核对接口、继承与兼容边界。257 收藏 -
多个 PHP 站点共用一个 PHP-FPM 进程池时,一个慢接口就可能挤占所有工作进程。本文用订单站和报表站的部署场景,比较独立进程池、并发预算、慢日志与灰度回滚的落地做法。256 收藏 -
PHP 8.4 新增 mb_ucfirst(),可以按多字节字符安全处理标题首字母。本文从 UTF-8 标题清洗场景出发,核对编码、空字符串、null 参数和 PHP 8.3 兼容写法,给出可回归的最小实现。256 收藏 -
PHP 日期计算里,1 月 31 日加一个月并不一定得到 2 月最后一天。本文对比 DateTimeImmutable 的 modify、显式锚定月初再回退一天等写法,给出可验证的选择边界。254 收藏 -
PHP Generator 结束后进程内存没有回落,往往不是 yield 本身泄漏,而是迭代器仍被引用、foreach 引用残留或 finally 尚未完成。本文用可复现实验拆解判断顺序。254 收藏 -
修改 Composer 的 PSR-4 自动加载映射后,为什么还会 Class not found?本文用 composer.json、vendor/composer 生成文件和 class_exists 检查,说明 dump-autoload 的作用、生产优化参数与常见排查边界。253 收藏 -
PHP 8.5 升级排查不要只盯动态属性。本文把 PHP 8.5 新弃用与 PHP 8.2 动态属性历史问题分开,用 E_ALL 日志、源码扫描和测试矩阵定位受影响代码。251 收藏 -
文章 · php教程 | 1个月前 | postgresql · PHP · MariaDB · 向量数据库 · Laravel PostgreSQL MariaDB Laravel 13 AsVector 向量字段 Eloquent Cast
Laravel 13 的 AsVector 将 Eloquent 向量字段统一成 PHP 浮点数组,但 MariaDB 使用小端 float32 二进制、PostgreSQL 兼容实现使用 JSON 文本;理解写入、读取和查询绑定边界,才能安全迁移向量存储。250 收藏 -
PHP Fiber 的异常不是由 resume 返回,而是从 Fiber::suspend() 的暂停点重新抛出;本文用一个最小任务调度器说明 start、resume、throw 的关系和终止边界。246 收藏 -
文章 · php教程 | 2个月前 | PHP · api设计 · 后端开发 · PHP http_build_query PHP 数组参数 URL 查询参数 PHP_QUERY_RFC3986 重复键参数 接口参数设计
PHP 的 http_build_query 会把数组编码成带下标的方括号参数;这和不少接口要求的重复键写法不是一回事。用一个筛选接口场景梳理数组、null、空格编码与兼容策略,避免请求串看着对、下游却读不出参数。245 收藏 -
PHP 8.3 的 readonly 类能固定对象属性绑定,但集合对象仍可能被内部修改。本文用购物车快照示例说明浅拷贝、深拷贝、clone 重初始化和运行时不变量的边界。245 收藏 -
PHP PDO 的 FETCH_GROUP 适合把同一分类的多条记录聚在一起,FETCH_UNIQUE 则把唯一键映射成单条记录。本文用商品分类查询拆开两种结果结构、重复键覆盖风险、空结果验收与最小可运行写法。244 收藏 -
PHP 8.5 扩展了 #[\Deprecated] 的使用范围,可以标记 trait 和常量。本文从旧 API 迁移现场出发,用函数、trait、类常量和全局常量示例,验证 E_USER_DEPRECATED、Reflection 与版本兼容边界。239 收藏