php教程技术文章
-
Laravel 队列里同一订单任务重复执行,通常不是单一配置问题。本文从重复信号入手,按唯一键、失败重试、幂等记录和回滚顺序排查,并给出可验证、可撤回的处理方案。336 收藏 -
PHP CLI 程序处理管道或重定向输入时,逐行读取适合大多数文本任务,但 EOF 判断、空行和大文件内存边界很容易写错。本文从 fgets(STDIN) 入手,整理逐行、整流和可控批量读取的选择,并给出可验证的退出条件。411 收藏 -
PHP 8.2 提供的 ini_parse_quantity 能把 ini 风格容量解析成字节,但非法单位会发出警告并按兼容规则解释。本文用配置校验器拆开单位换算、整数溢出和上线验收边界。163 收藏 -
文章 · php教程 | 5天前 | reflection · php教程 · PHP属性 · 运行时元数据 · php ReflectionAttribute getAttributes newInstance IS_REPEATABLE PHP属性
PHP 属性通过 Reflection API 读取时,getAttributes() 得到的不是属性对象,而是 ReflectionAttribute 描述。本文用路由元数据场景拆开重复属性筛选、参数读取、newInstance() 实例化和构造参数校验的边界。235 收藏 -
SplObjectStorage 用对象身份管理集合或对象到数据的映射。删除前先用 contains 确认目标,能把重复删除、错误对象和遍历期间修改这些边界分开处理;本文用一个观察者注册表示范安全的 detach 流程。270 收藏 -
PHP stream_select 适合把多个非阻塞流放进同一等待循环。本文用 socket_pair 演示读写集合、超时返回值、EOF 与部分写入的判断,解释为什么每轮必须重建数组,避免 CPU 空转。128 收藏 -
文章 · php教程 | 5天前 | 反射 · PHP · PHP 8.4 · ReflectionProperty · 属性钩子 · 反射 属性钩子 PHP 8.4 ReflectionProperty::isVirtual 虚拟属性
PHP 8.4 的属性钩子让属性可以只有 get 逻辑,但反射遍历时不能再把所有属性都当作有存储空间。本文用 ReflectionProperty::isVirtual 区分虚拟属性、带存储的 hooked 属性和普通属性,并给出兼容旧版本的检测边界。438 收藏 -
用 PHP 8.2 的 BackedEnum 接收表单字符串,区分 tryFrom 与 from 的错误语义,补上空值、非法值、默认分支和 JSON 响应校验。372 收藏 -
处理日志或导入文件时,stream_filter_append 可以把换行规范化放进流读取链,避免一次性读入大文件。本文用可复查的代码说明过滤器注册、读取边界、资源关闭和内存检查。134 收藏 -
文章 · php教程 | 6天前 | PHP · 并发控制 · 线上排查 · 会话管理 · 配置验收 · php session.save_path PHP会话 session_write_close session.lazy_write
PHP session.lazy_write 默认只在会话数据发生变化时重写文件,排查时容易把正常行为误判为会话丢失。本文从 session.save_path、文件权限、会话锁和 session_write_close 入手,给出可复现的核对脚本与上线检查清单。469 收藏 -
用 PHP Reflection API 检查联合类型参数时,先区分 ReflectionNamedType 与 ReflectionUnionType,再处理 nullable 标记,避免把 null、单类型和多类型混成一个判断分支。346 收藏 -
文章 · php教程 | 6天前 | 反射 · attribute · php教程 · PHP 8 · 代码验收 · php ReflectionClass Attribute ReflectionAttribute getAttributes isRepeated
PHP 8 的 Attribute 读取不是简单遍历字符串:ReflectionClass::getAttributes() 的名称过滤、ReflectionAttribute::IS_INSTANCEOF、isRepeated()、getArguments() 和 newInstance() 分别解决不同的验收问题。本文用一个可运行的注解扫描器拆开继承筛选、重复声明和参数校验边界。134 收藏 -
PDOStatement::fetchColumn() 读取单列很方便,但 0、NULL、false 和无结果分别代表什么,不能靠 if 判断猜。本文用 PHP PDO 查询场景拆开返回值边界,并给出行存在性、空值和布尔字段的验收写法。147 收藏 -
SPLFixedArray 适合固定长度、按整数下标顺序消费的批处理缓存,但不适合需要稀疏键、频繁扩容或复杂关联字段的场景。本文用可运行示例核对输入、校验、顺序读取和内存观测边界。477 收藏 -
PHP Generator 结束后进程内存没有回落,往往不是 yield 本身泄漏,而是迭代器仍被引用、foreach 引用残留或 finally 尚未完成。本文用可复现实验拆解判断顺序。254 收藏