php教程技术文章
-
PHP PDO 读取结果集指定行时,要在 prepare 阶段声明 PDO::CURSOR_SCROLL,再用 PDO::FETCH_ORI_ABS 和绝对行号调用 fetch;同时处理驱动支持、稳定排序、越界返回 false 与 closeCursor() 边界。282 收藏 -
PHP Fiber 不会自动把阻塞 I/O 变成异步,却能把回调结果通过 suspend、resume 与 throw 交回同步调用栈。本文用最小事件循环实现 await 适配器,并说明异常传播和生产边界。272 收藏 -
PHP WeakMap 的对象键不会增加对象引用计数;当外部最后一个强引用消失后,对象可被回收,对应条目也会自动移除。本文用派生元数据缓存示例解释机制、验证方式和常见隐藏引用。260 收藏 -
本文用 PausableTask 封装 PHP Fiber 的启动、挂起、恢复与异常注入,解释 start、resume、suspend、throw、getReturn 的双向数据语义,并处理可恢复异常和非法状态调用。246 收藏 -
PHP WeakMap 能以对象为键保存临时附加元数据,而且键不会增加对象引用计数。本文通过一个 MetadataRegistry 小项目演示写入、读取、自动移除与验收,并说明它和 SplObjectStorage 的选择边界。227 收藏 -
PHP PDO 分页查询中,LIMIT 和 OFFSET 属于整数边界,直接用 execute 数组传参时默认按字符串处理,可能触发 SQL 语法错误。本文说明占位符的边界、参数类型差异和完整分页写法,并给出 bindValue 与 bindParam 的选择建议。226 收藏 -
PHP 8.2 引入 readonly class 后,子类并不能像普通类一样随意继承。本文用最小示例说明只读继承、属性类型、静态属性与动态属性的限制,并给出迁移和验证清单。223 收藏 -
PDO::FETCH_GROUP 与 PDO::FETCH_COLUMN 按位或组合后,可以把结果集第一列变成分组键,把第二列收集为每组的值列表。本文用可复用的 PHP 示例说明列顺序、第二参数和边界。217 收藏 -
PHP 8.4 的非对称属性可见性可以让属性公开读取、限制写入。本文用对象边界、领域方法、继承、数组与引用规则解释 private(set) 和 protected(set) 的生产用法,并给出迁移检查清单。216 收藏 -
PHP 生成器不只会向外 yield 数据,还能用 Generator::send() 把值送回暂停点,并在结束后通过 getReturn() 取得最终结果。本文用可运行示例讲清 current、send、valid、return 与 yield from 的配合及常见跳值边界。208 收藏 -
PHP 的 clone 默认只复制外层对象,readonly 也不会自动深复制嵌套对象。本文说明 PHP 8.3 起 __clone() 中可一次性重新初始化 readonly 属性的版本边界、正确写法与验证方法。206 收藏 -
文章 · php教程 | 4天前 | php教程 · PHP 8.4 · php ReflectionClass newLazyGhost newLazyProxy lazy object 重量级服务
PHP 8.4 的 lazy object 可以把重量级服务推迟到首次真正使用时创建。本文用 newLazyGhost 说明原地初始化,再对比 newLazyProxy、状态检查、显式初始化和序列化边界。202 收藏 -
PHP iconv_mime_encode 的 Q 和 B 都用于生成 MIME 头字段,但适用的内容结构不同。本文从中文、ASCII 混合文本、字符集和折行参数出发,给出可执行的选择规则与对比示例。186 收藏 -
说明 PHP readonly class 的真实边界,对比配置快照、值对象和领域实体的生命周期,并给出可变实体组合只读值对象的实用建模方案。178 收藏 -
Composer 插件会在 Composer 运行时改变安装、下载或命令行为。本文比较 allow-plugins 的精确白名单、组织通配符、全部允许和全部禁止策略,给出适合项目、CI 与生产环境的配置边界。170 收藏