PHP echo构造 - 数组问题

时间:2010-11-02 20:23:53

标签: php

echo "$gooshgoosh[$i]['num']";

有谁在这里知道为什么回声

array['num']

2 个答案:

答案 0 :(得分:6)

PHP只会将插值表达式计算到第一个数组索引,或者首次尝试取消引用对象。这意味着这些不会按预期工作:

echo "$array[id1][id2]";    // like "{$array[id1]}[id2]"
echo "$object->obj1->obj2"; // like "{$object->obj1}->obj2"

您可以强制PHP使用花括号来评估整个表达式:

echo "{$array[id1][id2]}";
echo "{$object->obj1->obj2}";

在您的特定情况下,PHP正在评估"$gooshgoosh[$i]",它已解析为数组。数组到字符串的转换产生字符串“array”,因此字符串被替换为产生"array['num']"

答案 1 :(得分:3)

这是因为引号:PHP不理解,['num']是数组索引。试试这个:

echo $gooshgoosh[$i]['num'];