php教程技术文章
-
文章 · php教程 | 1天前 | 数据校验 · php教程 · PHP 8.4 · 对象设计 · PHP 8.4 Property Hooks 金额校验 set 访问器 InvalidArgumentException
PHP 8.4 property hooks 可以把金额字段的归一化和范围校验放在属性写入边界。本文用订单金额对象演示 set 访问器、异常回滚、构造初始化和 PHP 8.3 兼容写法。499 收藏 -
PHP 8.2 的 readonly class 能把值对象的写入边界收紧到构造阶段,但它不等于深度不可变。本文用 Address 和 OrderSnapshot 说明构造、内部对象、clone 与继承限制。480 收藏 -
PHP Closure::bindTo 不只是换一个 $this:newThis 决定对象,newScope 决定 private/protected 可见范围。本文用订单快照示例说明作用域切换、返回 null 的边界,以及测试中如何避免越过公开接口。448 收藏 -
用 PHP PharData 处理 tar 备份时,不能只检查压缩包能否打开,还要逐条校验归档路径,拒绝 ../、绝对路径和解包目录外的目标。本文给出打包、检查和安全解包的可运行边界。447 收藏 -
批量导入并不总是适合一条失败就回滚全部数据。本文用 PHP PDO 和 MySQL 演示 SAVEPOINT 的局部回滚写法,说明保存点命名、异常处理、释放保存点与最终提交的边界。430 收藏 -
文章 · php教程 | 1天前 | 错误处理 · HTTP · PHP · 接口调用 · stream context · php Http请求 重定向 超时 stream_context_create
用 PHP stream_context_create 为 HTTP 请求设置超时、重定向上限和失败响应读取规则,再通过响应头与状态码完成可复现验收。427 收藏 -
PHP 的 stream_get_contents 会从当前资源指针继续读取;第一次读到 EOF 后,第二次自然得到空字符串。本文用 PHP 内存流说明指针位置、offset 参数、rewind 与 feof 的关系,并给出可复查的读取写法。424 收藏 -
PHP CLI 长任务不应靠强制终止收尾。本文用 pcntl_signal 接住 SIGTERM,在批处理检查点记录停止请求,区分当前批次完成与进程退出,并给出可回滚、可验证的部署处理方式。408 收藏 -
PHP 8.4 为用户定义的函数、方法和类常量提供 #[\Deprecated] 属性。本文用一个兼容旧调用方的 PHP 示例,说明如何标注替代方案、用反射核对元数据,并把弃用提示接入 CI。382 收藏 -
PHP 会把符合规则的数字字符串数组键转换为整数,导致表单、JSON 和批量数据的键类型不一致。本文用可复现示例拆开转换边界,并给出校验与修复方法。376 收藏 -
PHP 8.1 的 array_is_list 能直接判断数组是否由 0 到 count-1 的连续整数键组成。本文对比 array_is_list、array_keys 和 array_values 在接口输入校验、重排数据与兼容旧版本时的边界,给出可运行的选择规则。372 收藏 -
用 PHP XMLReader 按游标读取超大 XML,区分 read、next 和 expand 的职责,控制节点处理和内存释放边界。331 收藏 -
PHP 8.4 的 #[\SensitiveParameter] 可以让异常回溯和参数转储避开密码、令牌等敏感值。本文用一个登录服务例子说明它的作用范围、调用链和上线前的日志核对方法。310 收藏 -
文章 · php教程 | 1天前 | 面向对象 · php教程 · PHP 8.4 · 兼容性迁移 · 动态属性 PHP 8.4 AllowDynamicProperties PHP迁移 deprecated
PHP 8.2 起,给未声明属性赋值会触发动态属性弃用提示。本文用一个遗留 User 对象示范如何定位告警、优先声明属性,并在确有兼容需要时使用 #[\AllowDynamicProperties],最后用回归检查确认迁移没有吞掉拼写错误。303 收藏 -
用一个可运行的 PHP 示例说明 preg_match_all、PREG_SET_ORDER 与命名捕获组如何共同决定 matches 数组结构,并梳理常见误读和边界。290 收藏