【发布时间】:2011-10-02 11:52:10
【问题描述】:
例如
if(!isset($am_states[$lot.'_-40C'])){
或
$am_states[$temp."_".$states[$i]['temperature']] = $states[$i]['temperature'];
每当我有连接字符串作为数组键的数组时,php 都会返回错误:
解析错误:语法错误,意外'.',期待']'
所以我假设服务器配置有问题,尽管我确定我在本地配置上进行了一些更改。 上次我更改配置是在我设置我的 apache/mysql/php 安装时
即 PHP 版本 5.3.1,Apache/2.2.14,MYSQL5.1.41(默认来自 xampp1.7.3)
所以我在 7 个月前使用了这种语法,它们工作正常。只是现在他们产生了错误。 有人可以帮忙吗?
【问题讨论】:
-
我不认为这是你可以关闭的东西,这是 PHP 的核心语法和功能。你在哪个 PHP 版本上运行它,你能提供更多信息吗?
-
我也不认为这是一个配置变量。为什么不为索引构建一个连接字符串并用字符串引用数组?
-
hmmm 我没有更新我的 php 版本,它之前工作过...... phpinfo 说它的 PHP 版本 5.3.1
-
这些工作:
$a = array("foo"=>1); $o = "o"; echo $a["fo$o"] . $a["fo" . $o]; /* 11 */ $a = array("0f00"=>1); $o = "0"; echo $a["$o"."f0$o"] . $a[$o."f0".$o]; /* 11 */ // this won't --> $a["$of0$o"]; It is guessing that $oF0 is a variable name.所以,问题可能出在其他地方。 -
@Mike Caron:很容易尝试 ;-) 在 5.2.14 和 5.3.6 上,它会生成
syntax error, unexpected ']'。不是同一个错误。无论如何,想不出任何代码可以准确生成该错误消息。