php教程技术文章
-
PHP stream_get_contents 会从当前流位置读取内容,长度参数决定单次读取上限。本文说明小响应如何控制内存、大响应如何分块处理,以及 false、空字符串和未关闭资源等边界。271 收藏 -
PHP Composer 的依赖解析会把 PHP、扩展和 Composer API 当作平台包。本文用生产 PHP 版本不一致的场景,说明如何配置 config.platform、生成 composer.lock,并在部署前检查真实平台。271 收藏 -
PHP PDO 的 ATTR_STRINGIFY_FETCHES 可以控制查询结果是否把非 null 值按字符串读取。本文结合接口输出、旧代码兼容和类型检查,说明开启与关闭该属性时的边界。270 收藏 -
IntlBreakIterator 返回的是 UTF-8 字节偏移,不是中文字符序号。本文对比 substr、mb_substr 与边界迭代,说明如何避免多字节文本切片错位。269 收藏 -
PHP json_decode 默认可能把 JSON 大整数解码为浮点数,订单号、雪花 ID 等标识就可能失去精度。本文说明 JSON_BIGINT_AS_STRING 的使用边界,并组合 JSON_THROW_ON_ERROR 处理解析失败。264 收藏 -
PHP fgetcsv 返回的是按位置排列的字段数组,连续分隔符产生的空字段仍然占位,而行尾缺失字段会让数组长度变短。本文用字段数量、空值和空行三个判断层次,说明如何在 CSV 导入边界保留行号并区分数据为空与结构不完整。261 收藏 -
PHP WeakMap 的对象键不会增加对象引用计数;当外部最后一个强引用消失后,对象可被回收,对应条目也会自动移除。本文用派生元数据缓存示例解释机制、验证方式和常见隐藏引用。260 收藏 -
Symfony UID 可以把 RFC 4122 UUID 字符串解析为对象,再通过 toBinary() 得到固定 16 字节值交给 Doctrine 或数据库保存。本文说明接口字符串、Uid 对象和 BINARY(16) 字段如何分工,以及手写查询时怎样绑定二进制参数。258 收藏 -
PHP match 使用严格比较,未匹配且没有 default 时抛出 UnhandledMatchError。本文解释字符串与整数差异、Error 捕获边界,并给出拒绝未知输入的示例。257 收藏 -
PHP 8.5 弃用的是反引号执行语法,而非 shell_exec 函数。本文说明显式函数替换、标准输出契约、三种返回值和字符串迁移注意事项。251 收藏 -
用 getopt 的 rest_index 找到选项解析停止位置,再通过 array_slice 读取 $argv 中的剩余位置参数,并区分第一个非选项与 -- 结束符。250 收藏 -
本文用 PausableTask 封装 PHP Fiber 的启动、挂起、恢复与异常注入,解释 start、resume、suspend、throw、getReturn 的双向数据语义,并处理可恢复异常和非法状态调用。246 收藏 -
PHP array_is_list() 判断的是数组键是否从 0 连续递增,而 json_encode() 再根据数组结构输出 JSON 数组或对象。本文用最小示例拆开空数组、跳号键、关联键和 JSON_FORCE_OBJECT 的边界。244 收藏 -
Symfony Process 启动子进程时,应把可执行文件、选项和参数分别放进数组元素。本文从最小写法讲到失败处理、工作目录、环境变量、超时和指标记录。243 收藏 -
PHP 终端表格不要用 strlen() 猜列宽。本文用 mb_strwidth() 解释半角、全角和 UTF-8 编码边界,并给出按显示宽度截断与对齐的实用写法。241 收藏