php教程技术文章
-
PHP filter_input 读取的是请求进入 PHP 时的原始输入快照,不会跟随代码后面对 $_GET 或 $_POST 的修改。本文用最小示例说明读取边界,并给出改用 filter_var、区分 null 与 false、处理数组参数的排查方案。237 收藏 -
PHP 8.2 提供 SensitiveParameter 属性,用于避免密码、令牌等参数原值出现在异常堆栈中。本文从未标记参数的泄露风险讲起,说明属性写法、SensitiveParameterValue 的自动包装、手动取值边界,以及日志和第三方库仍需补做的脱敏检查。125 收藏 -
PHP 8.2 的 Random\Randomizer 把取样操作与底层随机算法拆开。本文演示如何注入 Random\Engine,让生产环境使用 Secure,让测试用固定种子的 Mt19937 获得可复现结果。337 收藏 -
对比 PHP json_validate 与 json_decode 的语法校验、值构建、depth、flags 和错误处理边界,说明什么时候只校验、什么时候直接解码,以及 PHP 8.2 的兼容写法。107 收藏 -
PHP 8.4 的 ReflectionClass::newLazyGhost 适合把昂贵对象初始化推迟到真正访问时,本文用场景、代码和触发边界说明 ghost 与 proxy 的选型。442 收藏 -
PHP 8.4 属性钩子可以在属性边界集中处理校验、标准化和派生值,减少重复 getter/setter。本文用 backed 与 virtual 属性示例说明最小写法,并梳理 readonly、数组间接修改和构造器提升的边界。165 收藏 -
PHP 8.4 的 array_find 会按顺序返回第一个满足回调条件的数组值。本文说明值与键的回调参数、null 歧义、array_find_key 的配合方式,以及旧版本兼容写法。174 收藏 -
PHP 8.4 放开了析构阶段的 Fiber 切换,但循环 GC 可能使用 gc_destructor_fiber。本文解释版本边界、暂停后的对象回收条件和幂等清理方案。362 收藏 -
本文给出 PHP Composer 自动加载的开发与生产配置方法:源码使用 PSR-4,测试放入 autoload-dev,生产通过 --no-dev --optimize-autoloader 生成 classmap,并说明 classmap-authoritative 与 APCu 的适用边界。220 收藏 -
PHP OPcache 的脚本缓存策略必须和部署后的 PHP worker 重载动作配套。本文按开发与生产环境拆分 validate_timestamps、revalidate_freq、reset、invalidate 与服务重启的职责,给出可执行的发布清单。397 收藏 -
通过 request_id、FPM slowlog、access.log 和统一时间精度,把 PHP 慢请求调用栈与应用日志放回同一条可复核的时间线。334 收藏 -
PHP 文件上传不能直接相信客户端文件名,也不能只判断扩展名。本文按错误码、大小、真实 MIME、服务端命名和非公开目录的顺序,给出从临时路径到持久化文件的安全处理流程。223 收藏 -
PHP 默认文件会话会让同一用户的并发请求排队。本文从覆盖数据的故障现象出发,说明如何缩短 Session 锁定区间、区分只读与写入请求,并处理并发修改边界。458 收藏 -
PHP PDO 使用预处理语句时,先将输入归一化,再用 PDO::PARAM_INT、PDO::PARAM_STR 和 PDO::PARAM_NULL 显式绑定,避免整数、字符串与 NULL 语义被隐式转换。407 收藏 -
用 PHP readonly 属性或 readonly class 封装经过校验的配置对象,说明构造阶段赋值、数组与对象边界,以及 PHP 8.1 和 8.2+ 的兼容写法。138 收藏