php教程技术文章
-
PHP 8.5 的 array_last() 可以直接取得数组最后一个值,空数组返回 null,且不依赖连续数字下标。本文用事件列表场景拆解非连续键、空值判断和 PHP 8.4 及更早版本的兼容写法。501 收藏 -
JSON_THROW_ON_ERROR 能让 PHP 解码失败直接抛出 JsonException,但异常并不会自动携带业务字段路径。本文用原始请求体、行列提示和字段级解码,建立一套可追踪的 JSON 错误记录方式。501 收藏 -
文章 · php教程 | 3星期前 | 数据校验 · php教程 · PHP 8.4 · PHP 8.4 Property Hooks 金额校验 set 访问器 InvalidArgumentException
PHP 8.4 property hooks 可以把金额字段的归一化和范围校验放在属性写入边界。本文用订单金额对象演示 set 访问器、异常回滚、构造初始化和 PHP 8.3 兼容写法。499 收藏 -
PHP 文件上传时不要直接相信客户端 MIME 或文件扩展名,应读取服务器临时文件,用 finfo(FILEINFO_MIME_TYPE) 判断内容,再通过允许列表和安全命名完成保存。499 收藏 -
PHP cURL 中,CURLOPT_CONNECTTIMEOUT 负责连接阶段,CURLOPT_TIMEOUT 负责整次请求;本文用秒级和毫秒级示例说明如何配置、诊断和选择预算。498 收藏 -
PHP match 未处理分支通常不是语法错误,而是严格比较没有命中且表达式没有覆盖全部输入。本文用 default、异常边界和类型检查给出一套排查方法。498 收藏 -
PHP 接口里的时间问题,常常不是格式错,而是时区和日界线被悄悄改掉。用 DateTimeImmutable 固定输入规则、统一存储 UTC、按用户时区输出,并为日期筛选补上半开区间,可以避开少一天、重复八小时和夏令时边界等常见事故。496 收藏 -
PHP PDO fetchObject 的第二个参数就是构造参数数组。本文从参数位置、构造顺序、FETCH_PROPS_LATE 和最小验证四个方面排查常见问题。496 收藏 -
PHP 导出或后台列表一到几十万行就内存耗尽,常见原因不是 PDO 连不上,而是 fetchAll() 一次把剩余结果集堆进数组。先用最小测量定位峰值,再按用途改成 SQL 限制、逐行 fetch() 或分页批处理,才能把结果集大小和内存边界重新拉回可控范围。495 收藏 -
后台权限代码最怕把未知角色当成普通用户继续执行。本文用 PHP 8.2 枚举定义角色和动作,通过显式策略映射、拒绝默认分支与审计日志,把权限判断做成可测试、可追踪的边界。495 收藏 -
PHP yield 通过暂停并恢复生成器,按需交出当前数据,避免在处理开始前构造完整数组。本文解释内存差异、逐条读取写法、资源清理和不能随机访问的边界。495 收藏 -
用 PHP preg_replace_callback_array 处理 Markdown 标记时,规则顺序会影响代码片段、链接和强调语法。本文用一组可运行的回调规则说明如何分阶段保护、替换和恢复文本,避免嵌套替换与回调串线。492 收藏 -
PHP 8.5 的 |> 适合把单输入、单输出的纯函数按数据流从左到右串起来。本文用字符串转换示例说明 callable、箭头函数括号、多参数收口和不适用边界。490 收藏 -
PHP preg_match 返回 0 和 false 不是一回事:0 表示正则语法有效但没有匹配,false 表示调用或正则本身出错。本文用手机号校验和 UTF-8 异常案例拆开判断顺序,给出日志记录、错误定位和边界检查方法。489 收藏 -
文章 · php教程 | 4天前 | php教程 · session.save_path PHP session_start PHP会话保存路径 session_save_path排查 PHP会话目录权限
PHP session_start 找不到保存路径时,先查看当前请求实际生效的 session.save_path,再区分配置层级、代码覆盖、目录权限和容器挂载问题,最后用绝对路径完成复查。489 收藏