在PHP的子数组中使用字符“和”时,下列哪种方法是正确的?
$_POST["login['username']"];
$_POST['login[username]'];
将所有变量更改为数组后,我的代码现已中断。
以下是变量引用的HTML。
<p>Username:
<input name="login['username']" type="text" cols="92" />
</p>
<p>Email:
<input name="login['email']" type="text" cols="92" />
</p>
<p>Password:
<input name="login['password']" type="password" cols="92" />
</p>
<input type="submit" value="OK" />
</form>
在HTML中使用数组时,以下哪种方法是正确的。
<input name="login['password']" type="password" cols="92" />
<input name="login[password]" type="password" cols="92" />
我目前正在使用#1和#11的方式失败?
答案 0 :(得分:6)
您不需要在HTML中引用数组键,这是正确的:
<input name="login[password]" type="password" cols="92" />
这将在$ _POST中创建一个键'login',其值是另一个具有键'password'的数组,因此您可以像以下一样访问它:
$_POST['login']['password']
答案 1 :(得分:2)
首先,html中的正确形式是#22(没有引号)。
其次,这样做的全部意义在于它会将其转换为数组。发布此表单时,会在$ _POST INSIDE中创建一个名为login的数组。要访问它,请尝试以下操作:
echo $_POST['login']['username']; //echos username
echo $_POST['login']['password']; //echos password
以下是嵌套外观的快速概述:
'_POST' =>
array
'login' =>
array
'username' => string 'myusername' (length=10)
'password' => string 'mysecretpassword' (length=16)
尝试这样做可以很好地了解正在发生的事情,并获得如上所述的输出:
echo "<pre>";
var_dump($_POST);
echo "</pre>";
你将能够看到所有的嵌套。
答案 2 :(得分:-2)
只需为变量指定正常名称:username
,password
和email
。你正在创造自己的问题。