php教程技术文章
-
PHP Fiber 不会自动把阻塞 I/O 变成异步,却能把回调结果通过 suspend、resume 与 throw 交回同步调用栈。本文用最小事件循环实现 await 适配器,并说明异常传播和生产边界。272 收藏 -
PHP 多请求循环中,curl_multi_select 返回 -1 不能当成普通活动信号立即紧密重试。本文说明如何配合 curl_multi_exec、有限等待和完成消息读取,避免 CPU 空转并正确清理 cURL 句柄。272 收藏 -
PHP backed enum 处理请求字符串时,应在输入边界先用 tryFrom() 判断合法性,非法值返回 400;可信内部值再使用 from(),JSON 默认输出 backing value。271 收藏 -
php://temp 会先把数据放在内存中,超过默认或自定义 maxmemory 阈值后转用系统临时文件。本文解释临时目录、memory_limit、流式写入和资源释放的边界。271 收藏 -
PHP stream_get_contents 会从当前流位置读取内容,长度参数决定单次读取上限。本文说明小响应如何控制内存、大响应如何分块处理,以及 false、空字符串和未关闭资源等边界。271 收藏 -
PHP Composer 的依赖解析会把 PHP、扩展和 Composer API 当作平台包。本文用生产 PHP 版本不一致的场景,说明如何配置 config.platform、生成 composer.lock,并在部署前检查真实平台。271 收藏 -
SplObjectStorage 用对象身份管理集合或对象到数据的映射。删除前先用 contains 确认目标,能把重复删除、错误对象和遍历期间修改这些边界分开处理;本文用一个观察者注册表示范安全的 detach 流程。270 收藏 -
PHP PDO 的 ATTR_STRINGIFY_FETCHES 可以控制查询结果是否把非 null 值按字符串读取。本文结合接口输出、旧代码兼容和类型检查,说明开启与关闭该属性时的边界。270 收藏 -
在 Symfony 4.4 里,如果给带有 doctrine.event_subscriber 标签的服务直接设 Mock,通常会撞上“Service is already initialized”这个异常。问题不在 Mock 本身,而在于 Doctrine 的订阅器会在容器构建阶段就被 Conta269 收藏 -
文章 · 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 收藏 -
IntlBreakIterator 返回的是 UTF-8 字节偏移,不是中文字符序号。本文对比 substr、mb_substr 与边界迭代,说明如何避免多字节文本切片错位。269 收藏 -
Laravel 13 新增 AsVector Eloquent cast,把模型中的 PHP 浮点数组与 MariaDB 二进制向量、PostgreSQL 兼容文本值隔开,并为 MariaDB 向量距离查询转换绑定值。本文说明声明方式、跨数据库边界和常见反例。266 收藏 -
Composer 报平台依赖不满足时,先用 check-platform-reqs 检查生产机真实 PHP 与扩展,再对照 composer.json 的 require、config.platform 和 lock 文件定位差异,避免用忽略平台要求掩盖运行时问题。264 收藏 -
PHP json_decode 默认可能把 JSON 大整数解码为浮点数,订单号、雪花 ID 等标识就可能失去精度。本文说明 JSON_BIGINT_AS_STRING 的使用边界,并组合 JSON_THROW_ON_ERROR 处理解析失败。264 收藏 -
PHP PDO 不能用一个占位符直接绑定 IN 条件中的数组。本文用位置参数和命名参数说明如何按数组长度生成占位符,并处理空数组、整数类型和动态字段边界。263 收藏