php-ini-什么php配置变量不允许串联数组索引


php ini - What php configuration variable disallows concatenated array indexes?

E。G.

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(示例1.7.3中的默认值(

所以我在7个月前就开始使用这些语法,它们运行正常。只是现在他们产生了错误。有人能帮忙吗?

您对所使用的PHP版本持肯定态度吗?以下测试(使用PHP 5.3.6(cli((可以正常工作。也许你可以发布一个更完整的例子?

#!/usr/bin/env php
<?php
$states = array(
    array('temperature' => 40),
    array('temperature' => 50),
    array('temperature' => 60)
);
$temp = 'test';
$i = 2;
$am_states[$temp . "_" . $states[$i]['temperature']] = $states[$i]['temperature'];
var_dump($am_states);

这个脚本的输出是:

array(1) {
  ["test_60"]=>
  int(60)
}