PHP面试题更新 2026-08-05

请说明在 PHP 中解析、生成和操作 JSON 数据的具体方法,包括常用函数、错误处理以及数组与对象的转换规则。

技术原理JSONPHP

考察说明

考查对 PHP 内置 JSON 处理函数的掌握程度及实际应用中的注意事项。

回答思路

  1. 【回答框架 1】PHP 主要通过 json_encode 和 json_decode 两个函数处理 JSON。json_encode 将数组或对象转换为 JSON 字符串,默认输出 UTF-8 编码;json_decode 将 JSON 字符串解码为 PHP 变量,默认返回对象,若传入第二个参数 true 则返回关联数组。
  2. 【回答框架 2】错误处理方面,json_last_error 和 json_last_error_msg 可获取最近一次编解码的错误码和错误信息,常见错误包括 JSON_ERROR_SYNTAX(语法错误)和 JSON_ERROR_UTF8(非 UTF-8 字符)。在 PHP 7.3 及以上,可通过 JSON_THROW_ON_ERROR 选项让函数抛出 JsonException,简化异常处理。
  3. 【回答框架 3】操作 JSON 时需注意数据类型转换:JSON 对象对应 PHP 对象,JSON 数组对应 PHP 数组;关联数组编码为对象,索引数组编码为数组。深度嵌套时可通过 json_encode 的 depth 参数限制递归深度,防止栈溢出。
  4. 【回答框架 4】实际应用中,读取 JSON 文件时需先 file_get_contents 获取字符串,再 json_decode;输出 JSON 响应时设置 Content-Type: application/json 并 echo json_encode 结果。对于复杂数据结构,可结合递归函数遍历或修改 JSON 数据。
  5. 【回答框架 5】性能方面,json_encode 和 json_decode 在 PHP 中为 C 级实现,速度较快,但处理超大 JSON 时仍需注意内存占用,可考虑流式解析或分批处理。
  6. 【关键点 1】json_encode 用于编码,json_decode 用于解码,第二个参数控制返回数组或对象。
  7. 【关键点 2】使用 json_last_error 或 JSON_THROW_ON_ERROR 处理编解码错误。
  8. 【关键点 3】JSON 对象与 PHP 对象、JSON 数组与 PHP 数组的对应关系需明确。
  9. 【关键点 4】设置正确的 HTTP 头并输出 JSON 字符串以返回 API 响应。
  10. 【关键点 5】注意 UTF-8 编码和 depth 参数以避免常见错误。
  11. 【易错点 1】json_decode 默认返回对象,若期望数组需显式传入 true。
  12. 【易错点 2】未检查 json_last_error 可能导致静默失败,尤其在处理用户输入时。
  13. 【易错点 3】JSON 数据中的非 UTF-8 字符会导致编码失败,需提前转换或过滤。