鉴于此设置
$names = array('Smith', 'Jones', 'Jackson');
我知道这有效:
echo "Citation: {$names[1]}[1987]".PHP_EOL; //Citation: Jones[1987]
PHP通过带花括号的复杂语法,拉动数组中第二个元素的值,而[1987]只是另一个文本......
但是在下一个代码中:
echo "Citation: $names[1][1987]".PHP_EOL;
我期待一个错误,我希望PHP把它解释为一个二维数组并抛出一个错误,但它给了我相同的输出,上面的代码“Citation:Jones [1987]”
为什么?
答案 0 :(得分:1)
PHP首次出现在a[href^=tel]{text-decoration:none;}
,因为你有一个数组,正如你在manual中看到的那样:
同样,可以解析数组索引或对象属性。对于数组索引,结束方括号(])标记索引的结尾。对于简单变量,相同的规则适用于对象属性。
这意味着结束是第一个索引,例如
echo "Citation: $names[1][1987]".PHP_EOL; //^ Start ^ End
这意味着你的第二个维度"只是被解析为普通字符串。因此,对于更复杂的结构,您必须使用复杂的语法来标记变量的开头和结尾,例如
]
所以这会给你警告:
注意:未初始化的字符串偏移量:1987