php教程技术文章
-
PHP 反射读取方法可见性时,可以用 ReflectionMethod 的 isPublic、isProtected、isPrivate 判断 public、protected、private,再用 getModifiers 和官方常量读取 static、abstract、final 等组合属性。本文同时说明反射元数据与实际调用权限的边界。216 收藏 -
区分Symfony ULID、UUIDv4与UUIDv7的时间排序语义,说明同毫秒与跨进程限制,并给出PHP对象比较、存储表示及业务时间游标分页的设计示例。213 收藏 -
Composer 的 why/depends 用来追溯某个包由哪些依赖引入,--tree 可以展开递归关系;如果问题是目标版本为什么不能安装,则应改用 why-not/prohibits。本文用一组可复查的命令区分两类排查。213 收藏 -
文章 · php教程 | 1天前 | php教程 · 日期时间 · php 日期格式 国际化 locale IntlDateFormatter IntlDatePatternGenerator skeleton
PHP IntlDatePatternGenerator 可以根据 locale 和日期 skeleton 生成适合本地化显示的 pattern,再交给 IntlDateFormatter 输出。本文说明 create、getBestPattern、时区设置和失败处理边界。213 收藏 -
PHP 文件上传失败时,upload_max_filesize 限制单个文件,post_max_size 限制整个 POST 请求。本文用现象、配置和 PHP 读取值的方法区分两者,说明为什么 post_max_size 必须更大,以及如何处理超限后 $_FILES 为空。211 收藏 -
用 DateTimeImmutable 和 DateTimeZone 创建时区明确的不可变时间,覆盖构造器、格式解析、默认字段与时区转换边界。209 收藏 -
用 CachingIterator::hasNext() 判断当前项之后是否仍有有效下一项,配合 foreach 处理分隔符、尾项和空迭代器边界。209 收藏 -
PHP 生成器不只会向外 yield 数据,还能用 Generator::send() 把值送回暂停点,并在结束后通过 getReturn() 取得最终结果。本文用可运行示例讲清 current、send、valid、return 与 yield from 的配合及常见跳值边界。208 收藏 -
PHP 的 clone 默认只复制外层对象,readonly 也不会自动深复制嵌套对象。本文说明 PHP 8.3 起 __clone() 中可一次性重新初始化 readonly 属性的版本边界、正确写法与验证方法。206 收藏 -
DOMDocument::loadHTML 使用 HTML4 解析规则,遇到 HTML5 标签时不要把结果当成浏览器 DOM。本文按 PHP 版本给出 Dom\HTMLDocument 与旧版兼容路径的选择方法。204 收藏 -
PHP filter_var 使用 FILTER_CALLBACK 时,额外规则应通过闭包捕获、工厂函数或可调用对象封装,再放入 options 字段;不要把多个业务参数直接拼进 callback 数组。202 收藏 -
文章 · php教程 | 3星期前 | php教程 · PHP 8.4 · php ReflectionClass newLazyGhost newLazyProxy lazy object 重量级服务
PHP 8.4 的 lazy object 可以把重量级服务推迟到首次真正使用时创建。本文用 newLazyGhost 说明原地初始化,再对比 newLazyProxy、状态检查、显式初始化和序列化边界。202 收藏 -
PHP grapheme_stripos 会按字素单位查找第一个大小写不敏感的匹配位置。本文说明 UTF-8 输入、offset、负偏移、locale 和 false 判断,并讨论高频搜索时如何控制扫描成本。201 收藏 -
用 Monolog 的 Logger、Handler 和日志级别把 PHP 业务日志与错误异常分层输出,同时控制 bubble、敏感字段、PHP 诊断入口和日志权限。196 收藏 -
PHP 8.2 的 Randomizer 能通过固定随机引擎、种子和调用顺序生成可复现序列。本文比较 Mt19937、Xoshiro256StarStar 与 Secure 的使用边界,并给出测试隔离和常见误区。194 收藏