php教程技术文章
-
PHP 会把符合规则的数字字符串数组键转换为整数,导致表单、JSON 和批量数据的键类型不一致。本文用可复现示例拆开转换边界,并给出校验与修复方法。376 收藏 -
PHP 同一用户的多个请求出现排队,常见原因是 session_start 持有会话锁。本文说明如何用 read_and_close 或 session_write_close 缩短锁范围,并处理关闭后的写入与并发覆盖。373 收藏 -
用 PHP 8.2 的 BackedEnum 接收表单字符串,区分 tryFrom 与 from 的错误语义,补上空值、非法值、默认分支和 JSON 响应校验。372 收藏 -
PHP 8.1 的 array_is_list 能直接判断数组是否由 0 到 count-1 的连续整数键组成。本文对比 array_is_list、array_keys 和 array_values 在接口输入校验、重排数据与兼容旧版本时的边界,给出可运行的选择规则。372 收藏 -
解释 PHP PDO 占位符为什么只能绑定数据值,说明 MySQL 中 LIMIT 和 OFFSET 的正确绑定方式,并用白名单映射处理动态排序字段,避免把标识符误当成参数。372 收藏 -
用 set_error_handler 把 PHP 可捕获错误转换为 ErrorException,保留错误级别、文件和行号,并划清不可捕获错误的处理边界。372 收藏 -
PHP curl_multi_exec 负责推进多个 cURL 句柄的网络状态。本文用完整示例说明如何加入请求、等待 I/O、读取完成消息、区分传输错误与 HTTP 状态,并安全回收句柄。371 收藏 -
解释 PHP parse_url() 在 host/path、//host/path 和完整 URL 之间的解析差异,给出输入契约、scheme 归一化与严格 URI 解析的选择方法。369 收藏 -
PHP 8.4 的日期解析失败不应再靠返回值猜测。本文用用户输入日期的实际场景,说明 DateMalformedStringException 的捕获边界、格式校验、日志记录和旧版本兼容写法。367 收藏 -
PHP 8.5 中 array_first 和 array_last 遇到空数组都会返回 null。本文对比有效 null、旧版本兼容写法和 ?? 默认值的使用边界。367 收藏 -
文章 · php教程 | 4天前 | 协程 · PHP · 异步编程 · Fiber::suspend Fiber::resume PHP Fiber Fiber::getReturn 协程值传递 Fiber 生命周期
PHP Fiber 的值传递要拆成三段:start 或 resume 取到 suspend 交出的值,resume 的参数回到 Fiber 内部的 suspend 调用,Fiber 结束后再用 getReturn 读取最终 return。本文用一个多轮暂停示例说明设计边界、状态检查和异常清理。366 收藏 -
本文用分页参数 page 演示 PHP filter_input 的四个参数配置,解释 FILTER_VALIDATE_INT、options、默认值,以及 null、false 和合法值的排查边界。363 收藏 -
PHP 8.5 用 clone($object, [...]) 在复制对象时更新指定属性,适合 readonly 值对象的 with 方法;本文同时说明作用域、类型校验和 PHP 8.4 兼容写法。362 收藏 -
PHP 使用 stream_copy_to_stream 限制文件流复制长度时,应把字节上限传给 length,并区分 offset 起点、短流和 false 失败返回。359 收藏 -
SplPriorityQueue 是最大堆,同优先级元素的取出顺序没有稳定性保证。本文用可运行示例解释 compare 返回值、数组优先级和稳定顺序的实现边界。358 收藏