我是PHP新手。当我使用“echo”打印一个数组元素时,我的成功似乎取决于我所说的索引。那不对,对吧?!我觉得我疯了。此代码:解析错误似乎取决于我的名字我的数组索引
$ARRAY['q1'] = 'foo';
echo "q1 is $ARRAY[q1]<br>";
工作正常。但是这个代码:
$ARRAY['1q'] = 'foo';
echo "1q is $ARRAY[1q]<br>";
产生错误:
Parse error: syntax error, unexpected T_STRING, expecting ']' in /var/www/html/test.php on line 6
我知道,我可以纠正这样的问题:
echo "1q is " . $ARRAY['1q'] . "<br>";
但我的问题是,为什么数组索引“ 1q“与”q1“在第一个代码块中的问题?我甚至检查了1q是否是某种常数,但它似乎不是。这是一种不恰当的方式来插入数组元素的字符串? (我从PHP文档中复制出来)。
这是PHP 5.3.8。我非常感谢任何帮助。
编辑: 好吧,我从实例#8这个回声语法PHP手册的此页上:http://www.php.net/manual/en/language.types.string.php显然,这不是做事情的正确方法。我将在手册中添加用户提供的注释。
产生这个错误将是一个完整的脚本:
<?php
$ARRAY['1q'] = 'foo';
echo "1q is $ARRAY[1q]<br>";
?>
哪一行是'line 6'?请显示产生错误的完整实际代码,上面没有语法错误 - 尽管如果您想直接在字符串中使用关联数组值,则正确的语法是'“q1是{$ ARRAY ['q1'] }
“'。 – DaveRandom 2012-04-22 21:34:02
通常,变量必须以“字母”或“_”字符开头,而不是数字。 – hjpotter92 2012-04-22 21:39:42
我认为追逐死亡的评论实际上是最好的答案,尽管它不是答案,所以我不能这样标记它。我只是查了一下,它在PHP手册中说得非常清楚,你不能用一个数字来启动一个变量名。哎呀。 – niftyc 2012-04-22 21:54:28