php教程技术文章
-
线上执行 composer install --no-dev 后找不到类,通常不是命名空间突然失效,而是类被声明在 autoload-dev 或依赖只放在 require-dev。本文按依赖边界定位并修正。460 收藏 -
文章 · php教程 | 16小时前 | 数据结构 · php教程 · SplFixedArray · 数组对比 · PHP实战 · php 数据结构 PHP数组 SplFixedArray 数组性能
PHP 的 SplFixedArray 适合长度可预估、只使用连续整数索引的数据;普通 array 更适合关联键、动态追加、删除和丰富的数组函数。选择时应先看数据结构约束,再考虑内存与迁移成本。281 收藏 -
PHP 调用 session_regenerate_id() 返回 false 时,不要立即销毁旧会话。本文给出前置检查、旧数据保留、失败原因记录和成功/失败分支处理方法。258 收藏 -
PHP curl_multi_exec 负责推进多个 cURL 句柄的网络状态。本文用完整示例说明如何加入请求、等待 I/O、读取完成消息、区分传输错误与 HTTP 状态,并安全回收句柄。371 收藏 -
PHP Generator 的 yield 用于逐条输出数据,return 用于返回最终汇总;本文说明如何在迭代结束后通过 getReturn() 安全取值,并解释提前读取、空返回和 yield from 的边界。157 收藏 -
PHP readonly 属性不是普通的只读提示,而是一次初始化后禁止重新绑定的语言约束。本文解释合法初始化、作用域、间接修改、对象内部可变性和克隆边界。387 收藏 -
文章 · php教程 | 1天前 | 错误处理 · php教程 · 接口排查 · JSON解析 · php json_decode json_last_error JSON_THROW_ON_ERROR JSON_ERROR_NONE
解释 PHP json_decode 返回 null 的两种含义,演示如何用 json_last_error、错误码和 JSON_THROW_ON_ERROR 区分合法 JSON null 与语法、编码、深度解析失败。239 收藏 -
PHP 处理中文字符串时,mb_str_split 的 length 按字符而不是字节计算。本文从 UTF-8 编码、固定长度切块、参数边界和 emoji 组合字符四个方面说明怎么写,避免中文被拆成乱码或长度判断失真。485 收藏 -
PHP array_filter 不传回调时会按空值语义过滤整数 0 和字符串 0。本文用表单与统计数据场景演示如何通过显式回调保留 0,区分 null、空字符串和 false,并在需要时用 array_values 重建连续索引。300 收藏 -
DateTimeImmutable 的 setTimezone() 不会改原对象,而是返回保留同一时间点的新对象。接住返回值,再按目标时区格式化,才能让订单、报表的业务日期稳定可控。175 收藏 -
解释 PHP PDO 占位符为什么只能绑定数据值,说明 MySQL 中 LIMIT 和 OFFSET 的正确绑定方式,并用白名单映射处理动态排序字段,避免把标识符误当成参数。372 收藏 -
filter_input() 读取的是 PHP 从 SAPI 保存的原始外部输入,不会跟随脚本后续对 $_GET 的修改。本文用一个最小示例拆开两条读取路径,并说明什么时候改用 filter_var(),以及如何区分参数缺失、校验失败和有效的 0。443 收藏 -
文章 · php教程 | 1天前 | 字符串 · 字符编码 · php教程 · mbstring · php encoding UTF-8 mb_substr mb_internal_encoding
PHP 中统一处理中文字符串时,mb_internal_encoding 负责提供 mbstring 默认编码,mb_substr 的 encoding 参数只覆盖当前截取调用。本文用 UTF-8、混合输入和 PHP 8 异常边界说明两者怎么选择。177 收藏 -
PHP readonly 属性报错时,先看属性是否已初始化,再根据赋值作用域区分初始化失败、重复修改和间接修改。223 收藏 -
文章 · php教程 | 1天前 | 反射 · 元编程 · attribute · php教程 · 参数读取 · ReflectionParameter getAttributes PHP attributes Attribute::IS_REPEATABLE 重复属性
PHP 重复 Attribute 不能靠读取端猜测,必须先在属性类声明中加入 Attribute::IS_REPEATABLE,再用 ReflectionParameter::getAttributes() 取得全部实例,并根据 getArguments 或 newInstance 的需要选择读取方式。261 收藏