php教程技术文章
-
说明 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 收藏 -
CSV 字段内部可以包含换行,但前提是字段被 enclosure 正确包住。本文用 PHP fgetcsv 说明如何显式设置参数、保留多行字段,并排查 length、引号闭合和 PHP 8.4 escape 提醒。440 收藏 -
PHP Fiber 适合把需要等待外部结果的工作单元包装成可暂停任务。本文用 start、suspend、resume、throw 和 getReturn 说明调度边界,并强调 Fiber 本身不会自动把同步阻塞调用变成异步 I/O。438 收藏 -
PHP 的 finally 会在 try/catch 之后执行;如果 finally 中再次 return,就会覆盖原本准备返回的值,甚至让异常无法继续向外传播。本文用最小示例拆解这个控制流边界。435 收藏 -
PHP 枚举实现业务接口并不会自动定义序列化格式。本文区分原生 serialize、JSON 输出与反向恢复,给出 JsonSerializable、tryFrom 和兼容演进的完整边界写法。434 收藏 -
PHP 使用 substr 截取中文可能产生乱码。本文用 mbstring 和 mb_substr 按字符安全截取,并说明编码参数、负数起点、长度判断与显示宽度边界。434 收藏 -
文章 · php教程 | 1星期前 | 序列化 · PHP · 迁移 · 兼容性 · unserialize __sleep __wakeup Serializable PHP 8.5 __serialize __unserialize
PHP 8.5 已将 __sleep() 和 __wakeup() 标记为软弃用,推荐用 __serialize() 和 __unserialize() 显式控制对象载荷。本文给出兼容旧载荷的迁移写法,并说明 unserialize() 的 allowed_classes、完整性校验与不可信输入边界。432 收藏 -
排查PHP类型属性赋值触发TypeError的原因,区分写入位置的严格模式、空值与未初始化Error,给出正整数输入解析示例,并说明ORM水合与构造函数的边界。432 收藏 -
通过提醒与截止日期的独立派生示例,说明 DateTimeImmutable 如何保留基准日期、接收链式调用返回值,并处理旧 DateTime 转换与迁移中的赋值误区。431 收藏 -
文章 · php教程 | 3星期前 | 后端开发 · php教程 · php filter_var FILTER_VALIDATE_BOOLEAN FILTER_NULL_ON_FAILURE 布尔验证
PHP filter_var 使用 FILTER_VALIDATE_BOOLEAN 时,合法 false 与验证失败默认都可能返回 false。本文用 FILTER_NULL_ON_FAILURE 建立 true、false、null 三态结果,配合严格比较、字段存在性检查和测试矩阵,避免布尔输入被误判。428 收藏 -
PHP OPcache JIT 是否值得开启,不能靠一次跑分判断。本文用可重复的数值循环基准,对比关闭与开启 JIT 的耗时,说明 CLI 配置、预热、统计和上线边界。428 收藏 -
PHP 按字符截取中文等多字节字符串时,应启用 mbstring,使用 mb_substr 配合 mb_strlen,并显式传入 UTF-8。文章同时梳理扩展检查、长度边界、负数起点和 Emoji 等组合字符的适用范围。428 收藏