php教程技术文章
-
PHP-FPM 的 pm.max_children 不能只按 CPU 核数拍脑袋。本文从内存、CPU、数据库连接和排队风险四个约束估算起始值,再用 status 页面判断是否需要继续调整。132 收藏 -
PHP文件更新后仍执行旧逻辑,应先确认请求环境与生效配置,再区分OPcache时间戳检查和发布失效。本文说明两个配置项的配合,以及单文件失效、内存重置与多副本发布的范围。368 收藏 -
PHP parse_str() 应该始终传入第二个参数,把查询字符串放进明确的结果数组;这样不会在当前作用域按参数名创建变量。本文说明 PHP 8 的参数要求、URL 解码、键名转换、数组字段与 max_input_vars 边界。322 收藏 -
PHP stream_select() 返回 0 表示等待窗口内没有就绪流,不等于调用失败。本文用可读写流示例区分 0、正数和 false,说明引用数组、EOF、零超时轮询和总截止时间的处理边界。485 收藏 -
PHP php://temp 默认在内存中承接数据,达到阈值后切换到临时文件。本文说明怎样用 maxmemory 按字节设置阈值,以及为什么写入后必须 rewind 才能完整读取。310 收藏 -
PHP 8.2 起可以用 #[SensitiveParameter] 标记密码、令牌等参数,让它们在异常堆栈中以 SensitiveParameterValue 代替原值。本文按现象、证据和边界说明怎样排查配置是否生效。170 收藏 -
PHP readonly class为所有声明属性施加只读约束,但不会冻结成员对象。通过构造初始化、数组修改、共享DateTime和继承示例,说明PHP 8.2起的能力及版本边界。395 收藏 -
PHP match 没有任何分支命中时会抛出 UnhandledMatchError。本文比较显式分支、default 兜底和 try/catch 三种处理路径,帮助你根据输入是否封闭、未知值是否可接受来选择实现。472 收藏 -
PHP str_contains 对空字符串 needle 返回 true,同时默认区分大小写。本文从空输入、大小写差异、业务过滤和 PHP 7 兼容四个边界出发,说明怎样避免把空关键词误当成有效命中。423 收藏 -
PHP array_is_list按迭代顺序判断从0开始的连续整数键,空数组也算列表。通过键顺序、数字字符串和兼容函数示例,区分列表判定与array_values重新编号。361 收藏 -
从一个可回滚的 PHP-FPM pool 小配置出发,说明 pm 模式、进程上限、慢日志与请求超时如何配合,避免只调大 pm.max_children。174 收藏 -
PHP 文件上传失败不能只调大 upload_max_filesize。本文区分 post_max_size、upload_max_filesize 与应用层校验,结合 $_FILES 错误码和当前 SAPI 配置,整理按现象定位上传大小限制的方法。356 收藏 -
PHP 同会话请求排队时,应定位 session_start 等待,完成会话读写后用 session_write_close 提前释放。文章说明局部快照、关闭后修改、重新开启覆盖风险,以及框架入口的回退与复查方法。412 收藏 -
用 Throwable::getPrevious() 逐层整理 PHP 异常链,示范包装异常、结构化日志和敏感信息脱敏的实用写法。175 收藏 -
PHP stream_get_contents 会从当前流位置读取内容,长度参数决定单次读取上限。本文说明小响应如何控制内存、大响应如何分块处理,以及 false、空字符串和未关闭资源等边界。271 收藏