php教程技术文章
-
用 DateTimeImmutable 和明确的 IANA 时区计算月末,避开直接加月份的月底溢出,并封装成可复用的 PHP 函数。447 收藏 -
PHP 8.5 扩展了 #[\Deprecated] 的使用范围。本文用用户级方法、类常量和 trait 做一套可复查的弃用工作流,说明告警触发、Reflection 验收与旧版本兼容边界。446 收藏 -
PHP 8.5 CLI 新增 --ini=diff,可以只显示偏离内置默认值的 INI 配置。本文用开发、测试和生产环境核对场景,说明它与 --ini、php -i 的区别、读取层次、对比方法和采用边界。446 收藏 -
通过Symfony VarDumper的caster为订单对象定义三个只读摘要字段,说明虚拟属性、配置范围及debugInfo与序列化的区别,避免完整属性树带来的展示噪声。446 收藏 -
PHP IntlTimeZone::getRegion() 可以根据 IANA 时区 ID 查询地区代码。本文用 PHP 示例说明如何区分成功字符串与 false,如何做白名单映射,以及为什么必须保留原始时区 ID。446 收藏 -
外部字符串不能直接当作枚举 case 使用。本文用 PHP backed enum 的 from 与 tryFrom,拆开可信输入、非法值、缺省值和严格类型边界,给出可维护的字符串映射写法。445 收藏 -
IntlDateFormatter 格式化 DateTime 时使用的是 formatter 自己的时区,而不是 DateTime 对象的时区。本文用共享 DateTimeZone、规范输入和核对 timezone id 的方式,排查 PHP 国际化日期显示相差数小时的问题。444 收藏 -
filter_input() 读取的是 PHP 从 SAPI 保存的原始外部输入,不会跟随脚本后续对 $_GET 的修改。本文用一个最小示例拆开两条读取路径,并说明什么时候改用 filter_var(),以及如何区分参数缺失、校验失败和有效的 0。443 收藏 -
PHP 8.4 的 ReflectionClass::newLazyGhost 适合把昂贵对象初始化推迟到真正访问时,本文用场景、代码和触发边界说明 ghost 与 proxy 的选型。442 收藏 -
文章 · php教程 | 2星期前 | 文件上传 · php教程 · php 文件上传 多文件上传 session.upload_progress cancel_upload UPLOAD_ERR_EXTENSION
PHP Session Upload Progress 可以通过 cancel_upload 取消同一多文件请求中当前进行的文件和待处理文件,但不会移除已经成功完成的文件。本文给出进度查询、取消接口、错误码判断和请求缓冲排查方法。442 收藏 -
说明 PHP createFromFormat 使用 u 解析微秒时间,并处理默认字段、时区和错误结果。442 收藏 -
PHP SplPriorityQueue 不保证相同优先级元素的出队顺序。本文用业务优先级和递增序号构造复合优先级,重写 compare() 实现同级 FIFO,并说明提取标志、类型和替代方案。441 收藏 -
PHP 上传文件没有进入 upload_tmp_dir 时,先读取当前 SAPI 的有效配置,再检查目录权限和 open_basedir,最后从 $_FILES[tmp_name] 记录实际落点。本文给出一套不改永久保存逻辑的排查方法。441 收藏 -
PHP 8.5 的管道操作符 |> 会把左侧值交给右侧 callable,并把最后一个 callable 的返回值作为整个表达式的结果。本文说明链式转换、箭头函数括号、null、return、赋值和异常边界。441 收藏 -
PHP 8.4 新增 mb_trim、mb_ltrim 和 mb_rtrim,可以按多字节字符安全清理首尾空白。本文用中文表单和 CSV 字段场景拆解全角空格、字符掩码、编码参数与 PHP 8.3 回退写法,给出可回归的边界检查。440 收藏