从 JSON 到 PHP 数组
粘贴 JSON 文档即可生成符合.php源文件格式要求的PHP数组字面表达式,包含简短的数组语法(如[...])、规范的缩进格式、正确引用的字符串、嵌套对象转换为关联数组以及数组保持索引结构。该功能适用于在测试中嵌入API参数或初始化配置文件。
如何将 JSON 转换为PHP
-
1
粘贴 JSON
所有有效的 JSON(对象、数组及深度嵌套结构)均适用。
-
2
句法解析
短型`[...]`(适用于PHP 5.4及以上版本)或长型`array(...)`(现已罕见使用)。
-
3
选取字符串引号
单引号(不进行插值处理,使用转义撇号)或双引号(允许`$`插值,通常并非数据处理所需)。
-
4
复制数组
粘贴至您的`.php`文件中,分配至`return`,或封装于`config([...])`中。
示例
输入:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
输出(简短语法,单引号):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
类型映射
| JSON | PHP |
|---|---|
| 字符串 | 字符串(单引号包围) |
| 整数 | int |
| 数值(十进制) | 浮点数 |
| 布尔值 | true / false |
| 空值 | null |
| 数组(JSON) | 带索引的数组 |
| 对象(JSON) | 关联数组 |
何时使用关联数组与索引数组
PHP 中只有一种数组类型,但同时具备这两种行为。JSON 能清晰区分对象与数组,因此对应关系如下:
{}→ 关联数组(['key' => value])。[]→ 已索引([value, value])。
生成器始终保留这种区分;在PHP中混合使用这两种方式虽合法,但容易引起混淆。
PHP特有的陷阱
- **数值字符串键。**PHP会将
"42"转换为数组中的整数键42。若您的 JSON 使用数值字符串作为键且需要以字符串形式呈现,则array_combine的双向转换操作无法保留原始数值。 - 大整数。 在32位架构中, JSON 可存储大于
PHP_INT_MAX的整数;当出现这种情况时,生成器会发出警告。 - ** UTF -8.** PHP字符串是字节序列;生成器会直接输出 UTF -8格式。请确保您的
.php文件以不含BOM的 UTF -8格式保存。
使用场景
- 配置文件:Laravel和Symfony均采用PHP数组形式的配置方案。直接使用 JSON 提供的标准配置文件格式即可完美运行。
- 测试夹具:
PHPUnit夹具作为数组形式比运行时加载的 JSON 文件更整洁。 - 种子代码:Laravel中的数据库种子代码通常从 JSON 转储文件开始编写,并最终转化为PHP数组形式。
常见错误
- 将PHP数组双向转换为 JSON 数组。
json_encode将关联数组视为对象,而索引数组视为普通数组;若混合使用这两种类型(如['key' => 'val', 0 => 'x']),输出结果将呈现对象形式。请确保 JSON 形状的数组始终保持 JSON 形结构。 - 使用带撇号的双引号:单引号内的 PHP 字符串需转义为
\\';双引号内的字符串需转义为\\";若操作不当,变量可能会被意外插入。请始终使用单引号表示数据。 - 忽略末尾逗号。 PHP 自 PHP 7.3 起已默认支持使用逗号,这有助于提升代码差异对比的清晰度;生成器也会自动添加这些逗号。
常见问题
短语法([...])自PHP 5.4起已可用,是所有现代代码的首选语法形式;长语法(array(...))仅适用于必须在PHP 5.3或更早版本上运行的代码,即传统系统中的代码。
是的。Laravel配置文件实际上是通过文件读取返回的纯PHP数组。请将生成器输出内容粘贴到return之后,并保存为config/。
单引号包裹的PHP字符串不会插入变量或转义序列(\'和\\除外)。对于数据字面量而言,这种方式更快速且更安全。双引号仅在字符串中包含\n、\t或$variable时才需要使用。
不,它会输出一个数组字面值。可根据需要使用 return、const 或类属性自行包装。保持输出内容简洁可组合。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- JSON vers tableau PHP [FR]
- JSON till PHP-array [SV]
- JSON เป็น PHP Array [TH]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON ke Array PHP [ID]
- JSON sang mảng PHP [VI]
- JSON을 PHP 배열로 변환 [KO]
- JSON zu PHP-Array [DE]
- JSON a Array de PHP [ES]
- JSON naar PHP-array [NL]
- JSON do tablicy PHP [PL]
- JSONからPHP配列へ [JA]
- JSON para Array PHP [PT]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]