Какая переменная конфигурации php запрещает объединенные индексы массива? - PullRequest
2 голосов
/ 11 июля 2011

EG

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 месяцев назад, и они работали правильно.Только сейчас они выдают ошибки.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 11 августа 2011

Вы положительно оценили версию 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...