PHP 处理 POST 和 GET 变量的一个特性是它会自动解码索引的表单变量名。
我见过无数项目跳过额外的和不必要的处理步骤来解码变量,而 PHP 已经为您完成了所有这些工作。
示例伪代码
许多网站这样做
<form ....>
<input name="person_0_first_name" value="john" />
<input name="person_0_last_name" value="smith" />
...
<input name="person_1_first_name" value="jane" />
<input name="person_1_last_name" value="jones" />
</form>
而他们本可以这样做:
<form ....>
<input name="person[0][first_name]" value="john" />
<input name="person[0][last_name]" value="smith" />
...
<input name="person[1][first_name]" value="jane" />
<input name="person[1][last_name]" value="jones" />
</form>
对于第一个例子,您必须进行字符串解析/正则表达式才能获得正确的值,以便能够将它们与应用程序中的其他数据结合起来……而对于第二个例子……您将得到类似以下的结果:
<?php
var_dump($_POST['person']);
//将得到类似以下的结果:
array (
0 => array('first_name'=>'john','last_name'=>'smith'),
1 => array('first_name'=>'jane','last_name'=>'jones'),
)
?>
当您想要将各种发布的表单数据链接到服务器端的其他哈希值时,当您需要将发布的数据存储在单独的“隔间”数组中时,或者当您想要将发布的数据链接到各种框架中的不同记录处理程序时,这非常宝贵。
还要记住,使用 [] 作为索引将导致在数据发布后创建顺序数字数组,因此有时最好明确定义索引。