php教程技术文章
-
PHP 命令行里能读到的环境变量,到了 PHP-FPM 页面却变成空值,通常不是代码随机失效,而是 SAPI、php.ini、FPM pool 和 Web 服务器传递链路不同。本文用一套可复查的核对流程定位差异,并给出安全的配置边界。237 收藏 -
文章 · php教程 | 2星期前 | PHP · 递归 · closure · PHP 8.5 · 代码设计 · PHP 8.5 Closure::getCurrent 递归闭包 PHP 闭包 缓存遍历
PHP 8.5 新增 Closure::getCurrent(),递归闭包不必再用 use (&$closure) 捕获自身。本文用目录树遍历场景拆解它的适用压力、缓存边界、深度限制和异常测试,帮助你判断这项语法改进是否值得落地。214 收藏 -
PHP 8.5 的 clone() with 可以在复制对象时更新属性,适合构造不可变 DTO 的新版本。本文用订单快照场景拆解浅拷贝、嵌套对象共享和 readonly 属性的兼容边界。237 收藏 -
PHP 8.5 的 clone with 可以在复制对象时直接覆盖属性,适合不可变 DTO 和配置对象。本文用最小示例说明公开属性、私有属性、只读属性的边界,并给出升级后的回归检查清单。306 收藏 -
PHP 8.5 允许静态闭包和一等可调用出现在常量表达式中,属性参数因此可以直接承载校验器或处理器。本文从路由属性场景出发,拆开 PHP 8.4 与 8.5 的解析边界,并用 Reflection 和 CI 检查兼容性。164 收藏 -
PHP 8.4 与 8.5 的 #[\Deprecated] 支持范围不同。本文从旧 API 迁移现场出发,用函数、trait、类常量和全局常量示例,验证弃用信号、Reflection 与版本兼容边界。107 收藏 -
PHP 8.5 扩展了 #[\Deprecated] 的使用范围,可以标记 trait 和常量。本文从旧 API 迁移现场出发,用函数、trait、类常量和全局常量示例,验证 E_USER_DEPRECATED、Reflection 与版本兼容边界。239 收藏 -
文章 · php教程 | 3星期前 | WEB开发 · 文件上传 · PHP · 安全校验 · Fileinfo · PHP 文件上传 move_uploaded_file MIME finfo_file is_uploaded_file
PHP 文件上传不能只看扩展名和浏览器传来的 MIME 字段。本文用 finfo_file() 检查临时文件的真实类型,再配合大小、错误码、is_uploaded_file() 和 move_uploaded_file() 建立一条可验证的上传边界,并说明校验通过后仍要如何限制保存路径和访问方式。117 收藏 -
文章 · php教程 | 3星期前 | WEB开发 · 错误处理 · PHP · PHP 8.5 · 异常排查 · set_error_handler PHP 8.5 get_error_handler restore_error_handler 错误处理器
PHP 8.5 新增 get_error_handler(),可以读取当前注册的错误处理器,适合排查框架中间件、临时兜底和恢复顺序问题。本文用一条被吞掉的警告为例,说明它与 set_error_handler()、restore_error_handler() 的配合方式及边界。292 收藏 -
PHP 8.5 的 array_last() 可以直接取得数组最后一个值,空数组返回 null,且不依赖连续数字下标。本文用事件列表场景拆解非连续键、空值判断和 PHP 8.4 及更早版本的兼容写法。479 收藏 -
PHP 8.5 的 array_last() 可以直接取得数组最后一个值,空数组返回 null,且不依赖连续数字下标。本文用事件列表场景拆解非连续键、空值判断和 PHP 8.4 及更早版本的兼容写法。501 收藏 -
PHP 8.5 内置 URI 扩展后,处理回调地址、分页链接和相对路径不必只依赖 parse_url。本文用 Uri\Rfc3986\Uri 对比旧写法,拆解规范化、resolve、查询串修改和上线前兼容检查。323 收藏 -
后台权限代码最怕把未知角色当成普通用户继续执行。本文用 PHP 8.2 枚举定义角色和动作,通过显式策略映射、拒绝默认分支与审计日志,把权限判断做成可测试、可追踪的边界。495 收藏 -
PHP-FPM 文件上传接口出现磁盘告警时,先从 upload_tmp_dir、is_uploaded_file、move_uploaded_file 和异常回收入手,建立可观测、可回滚的临时文件处理流程。357 收藏 -
PHP 8.5 新增 #[NoDiscard] 属性,可以在调用方忽略关键返回值时给出警告。本文从一个被吞掉的校验结果切入,说明属性的适用边界、(void) 豁免方式和升级到 PHP 8.5 前后的验证清单。390 收藏