这是html数组还是php数组?

时间:2010-09-15 20:44:42

标签: php

请帮帮我,我在我的项目中遇到了这个脚本。这是html数组还是php数组?

<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" />

4 个答案:

答案 0 :(得分:3)

它看起来像是PHP脚本的一部分。我想其余的看起来像这样:

$html = '<input type="hidden" name="newsletter[' . $var["id"] .
        '][someid]" value="' . $var['id'] . '" />'

评估时,它应该产生类似下面的HTML字符串:

<input type="hidden" name="newsletter[123][someid]" value="123" />

答案 1 :(得分:3)

这是两者的结合。例如,以下内容:

<input type='text' name='arr[foo]' value='fooValue' />
<input type='text' name='arr[bar]' value='barValue' />

提交后,PHP会将其读入名为arr的数组中,如下所示:

$_POST['arr'] (
    'foo' => 'fooValue',
    'bar' => 'barValue'
)

这使得能够通过生成PHP或通过javascript或类似方式更容易地将数组传递到PHP脚本。

您拥有的具体示例是使用PHP数组生成一些HTML,然后可以在下一个PHP脚本中将其作为数组读取,但HTML本身并不具有数组的概念。

答案 2 :(得分:3)

让我们打破这个......

<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" />

没有PHP ...

<input type="hidden" name="newsletter[removed][someid]" value="removed" />

是否将HTML输入字段设置为以数组形式发布。如果你调用了$_POST['newsletter'],它将返回一个数组。所以这部分是一个HTML数组。

$var["id"] PHP变量是一个数组。它调用$ var associative array的“id”索引。

因此它既是HTML数组又是PHP数组。如果您要执行此字段并使用以下代码段分析PHP中的帖子数据:

if (isset($_POST['newsletter']))
die(print_r($_POST));

$var = array('id' => 2); // assume $var['id'] = 2

echo "<form method='post'>";
echo '<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" />';
echo "<input type='submit' />";
echo "</form>";

提交后,您会在$ _POST ['newsletter']

中看到以下数组
Array
(
    [newsletter] => Array
        (
            [2] => Array
                (
                    [someid] => 2
                )
        )
)

答案 3 :(得分:0)

HTML没有数组的概念。

所有输入都将成为DOM中elements的{​​{1}}集合的一部分(可通过客户端JS访问)。

当提交给PHP脚本时,输入的名称将导致PHP将其扩展为分配给关联数组中的键的值,该关联数组分配给分配给HTMLFormElement键的另一个关联数组中的键在newsletter以及$_REQUEST$_GET超全球数组中。