PHP
已收录文章:42篇
-
PHP Generator 结束后进程内存没有回落,往往不是 yield 本身泄漏,而是迭代器仍被引用、foreach 引用残留或 finally 尚未完成。本文用可复现实验拆解判断顺序。254 收藏
-
PHP 8.5 的 clone() with 可以在复制对象时更新属性,适合构造不可变 DTO 的新版本。本文用订单快照场景拆解浅拷贝、嵌套对象共享和 readonly 属性的兼容边界。237 收藏
-
将自然日输入从时间点语义中分离,显式设置时区、严格解析日期并接收不可变对象返回值,避免换环境导致订单日期偏移。227 收藏
-
文章 · php教程 | 2个月前 | JSON · 错误处理 · PHP · PHP升级 json_decode PHP 8.3 json_validate JSON校验 JSON_THROW_ON_ERRORPHP 8.3 新增的 json_validate() 适合只判断 JSON 是否有效、并不需要马上读取内容的场景。本文用 webhook 入站校验拆开内存边界、json_last_error_msg、深度参数、UTF-8 与旧版本兼容实现。221 收藏
-
PHP 8.5 新增 Closure::getCurrent(),递归闭包不必再用 use (&$closure) 捕获自身。本文用目录树遍历场景拆解它的适用压力、缓存边界、深度限制和异常测试,帮助你判断这项语法改进是否值得落地。214 收藏
-
文章 · php教程 | 2个月前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。203 收藏
-
PHP 8.5 支持在构造器属性提升中声明 final 属性,防止子类重新声明同名属性。本文用订单实体说明语法、继承边界、反射检查与 PHP 8.4 兼容策略。192 收藏
-
文章 · php教程 | 2个月前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。155 收藏
-
PDOStatement::fetchColumn() 读取单列很方便,但 0、NULL、false 和无结果分别代表什么,不能靠 if 判断猜。本文用 PHP PDO 查询场景拆开返回值边界,并给出行存在性、空值和布尔字段的验收写法。147 收藏
-
PHP CLI 脚本明明抛出了异常,shell 或 CI 却拿到 0,通常不是 PHP 没有报错,而是异常、致命错误和 shutdown 回调被混在了一条观测链里。本文从命令行任务现场出发,拆开 Throwable、register_shutdown_function 与退出码的关系,并给出可复现的日志验收方法。133 收藏
-
PHP 的 TCP 探活不该只看一个布尔值。本文用 stream_socket_client() 拆解 DNS、连接超时、端口拒绝、上下文参数和日志归因,给出可回归的最小检查器。130 收藏
-
PHP 密码策略升级不需要一次性重置所有用户。先用 password_verify 验证旧哈希,再用 password_needs_rehash 判断算法或 cost 是否落后,并在同一次成功登录中原子更新密码哈希。126 收藏