php教程技术文章
-
本文给出 PHP Composer 自动加载的开发与生产配置方法:源码使用 PSR-4,测试放入 autoload-dev,生产通过 --no-dev --optimize-autoloader 生成 classmap,并说明 classmap-authoritative 与 APCu 的适用边界。220 收藏 -
文章 · php教程 | 3星期前 | HTTP · php教程 · stream_get_meta_data PHP Stream stream_get_wrappers HTTP wrapper 文件流识别
PHP stream 同时承载本地文件和 HTTP 等协议时,不能只看 stream_type 判断来源。本文用 stream_get_meta_data、stream_is_local 和 stream_get_wrappers 拆开 wrapper、底层实现、URI 与 seekable 的职责,给出文件流、HTTP 流及自定义 wrapper 的识别边界。217 收藏 -
PDO::FETCH_GROUP 与 PDO::FETCH_COLUMN 按位或组合后,可以把结果集第一列变成分组键,把第二列收集为每组的值列表。本文用可复用的 PHP 示例说明列顺序、第二参数和边界。217 收藏 -
DOMXPath 查询带默认命名空间的 XML 时,直接写 //catalog/item 往往返回空结果。本文用原创 XML 示例说明如何注册 namespace URI、选择 XPath 前缀,并区分空 DOMNodeList 与 false 的排查路径。216 收藏 -
PHP 8.4 的非对称属性可见性可以让属性公开读取、限制写入。本文用对象边界、领域方法、继承、数组与引用规则解释 private(set) 和 protected(set) 的生产用法,并给出迁移检查清单。216 收藏 -
PHP 生成器不只会向外 yield 数据,还能用 Generator::send() 把值送回暂停点,并在结束后通过 getReturn() 取得最终结果。本文用可运行示例讲清 current、send、valid、return 与 yield from 的配合及常见跳值边界。208 收藏 -
PHP Generator 的 yield from 可以把分页读取、过滤器、数组和 Iterator 组合成一条惰性迭代链。本文通过可运行示例说明委托控制权、重复键、iterator_to_array 参数以及 Generator return 值的处理边界。206 收藏 -
PHP 的 clone 默认只复制外层对象,readonly 也不会自动深复制嵌套对象。本文说明 PHP 8.3 起 __clone() 中可一次性重新初始化 readonly 属性的版本边界、正确写法与验证方法。206 收藏 -
PHP Fibers 没有独立开关,先检查 PHP 8.1+ 与 Fiber 类,再用 start、suspend、resume、throw 和状态方法定位挂起恢复问题。205 收藏 -
PHP filter_var 使用 FILTER_CALLBACK 时,额外规则应通过闭包捕获、工厂函数或可调用对象封装,再放入 options 字段;不要把多个业务参数直接拼进 callback 数组。202 收藏 -
文章 · php教程 | 1天前 | php教程 · PHP 8.4 · php ReflectionClass newLazyGhost newLazyProxy lazy object 重量级服务
PHP 8.4 的 lazy object 可以把重量级服务推迟到首次真正使用时创建。本文用 newLazyGhost 说明原地初始化,再对比 newLazyProxy、状态检查、显式初始化和序列化边界。202 收藏 -
关闭 OPcache.validate_timestamps 能减少文件时间戳检查,但发布时必须主动处理缓存。本文用版本目录、文件级失效、FPM 重载和健康检查,整理一套可回滚的 PHP 发布顺序。201 收藏 -
PHP WeakReference::get() 在对象仍存活时返回对象,对象被销毁后返回 null。本文用缓存观察场景说明如何创建弱引用、立即判断结果,并避免读取后再次把对象长期持有。201 收藏 -
DateTimeImmutable::createFromInterface 会创建新的不可变对象,并保留来源对象的日期、时间与时区信息。本文通过可复用封装说明时区名称、偏移和微秒的验证方法,以及保留时区与显式转换时区的区别。201 收藏 -
PHP CLI 通过 php://stdin 和 fgets() 逐行读取标准输入,本文说明如何区分空行与 EOF、选择 trim 或 rtrim,并覆盖管道、重定向和长行边界。193 收藏