通过PHP数组循环,错误日志显示未定义的常量

时间:2019-04-18 12:11:15

标签: php arrays

我有一个看起来像这样的PHP数组$ data ...

def takenum(x,y):

    print("Your first number is " + x + " your second number is " + y)

    result = (x + y)

    print(result)

x = input("put your first number: " )

y = input("Put your second number: " )

takenum(x, y)

我正在尝试遍历Array ( [section] => Array ( [345dfg] => Array ( [test] => Array ( [name] => John ) ) [567fghj] => Array ( [test] => Array ( [name] => Tom ) ) ) [othersection] => Array ( [result] => 2 ) ) 中的每个项目,所以这样做...

section

它可以正常工作,但是在我的错误日志中,我得到...

foreach ($data[section] as $section) {

    echo $section[test][name];

}

我要去哪里错了?

1 个答案:

答案 0 :(得分:5)

您需要使用单引号将数组键括起来,因为它们是字符串类型。

所以

foreach ($data[section] as $section) {

应该是

foreach ($data['section'] as $section) {

否则,如果没有$且没有单引号,则section被认为是constant

具有$data['section']的可能性:

1)$section作为变量:$data[$section]

2)section作为常量:$data[section]

3)section作为数组键(字符串):$data['section']

将数组键括在单引号中始终是一个好习惯。

巧合的是,如果定义了相同的常量,则可以将该常量的值视为数组键。

如果未定义常量,则会显示警告。