php教程技术文章
-
PHP Fiber 只负责暂停和恢复协作式任务,不会自动把 PDO 变成异步驱动。本文用任务级资源所有权、closeCursor 和 finally 收口数据库连接、结果集与事务。153 收藏 -
PHP 枚举实现业务接口并不会自动定义序列化格式。本文区分原生 serialize、JSON 输出与反向恢复,给出 JsonSerializable、tryFrom 和兼容演进的完整边界写法。434 收藏 -
PHP 的 clone 默认只复制外层对象,readonly 也不会自动深复制嵌套对象。本文说明 PHP 8.3 起 __clone() 中可一次性重新初始化 readonly 属性的版本边界、正确写法与验证方法。206 收藏 -
PHP 的 __serialize 可以把对象状态改造成带版本号的稳定关联数组,避免私有属性改名直接破坏历史数据。本文给出版本字段、旧键映射、默认值、类型检查和读旧写新的完整写法,并说明运行态字段与不可信反序列化的边界。398 收藏 -
PHP FFI 的 CData 对象、派生指针与本地库内存可能拥有不同生命周期。本文给出所有权判定、释放配对、封装写法和回归清单。284 收藏 -
定位 PHP OPcache JIT 未编译函数,不能只看性能变化。本文从 JIT 全局状态、CLI 复现、ASM 输出和 tracing 编译/终止/黑名单位入手,建立已编译证据,并逐层排查触发模式、热度阈值、代码形态与缓冲区容量。295 收藏 -
PHP 枚举映射要保持穷尽,核心是显式列出每个 case、不要用静默 default,并遍历 cases() 做回归测试。本文比较 enum 方法、外部函数和数组映射,说明各自边界。377 收藏 -
PHP 生成器不只会向外 yield 数据,还能用 Generator::send() 把值送回暂停点,并在结束后通过 getReturn() 取得最终结果。本文用可运行示例讲清 current、send、valid、return 与 yield from 的配合及常见跳值边界。208 收藏 -
PHP 8.2 引入 readonly class 后,子类并不能像普通类一样随意继承。本文用最小示例说明只读继承、属性类型、静态属性与动态属性的限制,并给出迁移和验证清单。223 收藏 -
PHP 7.4+ 可用 ReflectionReference::fromArrayElement() 判断数组元素是否为引用,再严格比较 getId() 判断两个元素是否共享同一引用。本文覆盖非引用、缺失键、foreach 残留引用与解除引用后的反向验证。376 收藏 -
文章 · php教程 | 6天前 | php教程 · PHP 8.4 · php ReflectionClass newLazyGhost newLazyProxy lazy object 重量级服务
PHP 8.4 的 lazy object 可以把重量级服务推迟到首次真正使用时创建。本文用 newLazyGhost 说明原地初始化,再对比 newLazyProxy、状态检查、显式初始化和序列化边界。202 收藏 -
PHP 8.4 的非对称属性可见性可以让属性公开读取、限制写入。本文用对象边界、领域方法、继承、数组与引用规则解释 private(set) 和 protected(set) 的生产用法,并给出迁移检查清单。216 收藏 -
PHP WeakMap 能以对象为键保存临时附加元数据,而且键不会增加对象引用计数。本文通过一个 MetadataRegistry 小项目演示写入、读取、自动移除与验收,并说明它和 SplObjectStorage 的选择边界。227 收藏 -
PHP Fiber 不会自动把阻塞 I/O 变成异步,却能把回调结果通过 suspend、resume 与 throw 交回同步调用栈。本文用最小事件循环实现 await 适配器,并说明异常传播和生产边界。272 收藏 -
说明 PHP readonly class 的真实边界,对比配置快照、值对象和领域实体的生命周期,并给出可变实体组合只读值对象的实用建模方案。178 收藏