2016-08-31 3 views
-2

Я получаю ошибку синтаксического анализа:
Ошибка анализа: синтаксическая ошибка, неожиданная '[', ожидающая ',' или ';' в index.php в строке 23Ошибка: ошибка анализа: синтаксическая ошибка, неожиданные '[', ожидающие ',' или ';'

линии 23 это:

echo "<h3>Message received from: </h3>" . $er->GetMessage($i)["header"]->fromaddress; 

Я изменил синтаксис во всех подобных линиях

echo "<h3>Message received from: </h3>" . $er->GetMessage($i)["header"]['fromaddress']; 

, но я получаю сообщение об ошибке идентичного.

$er - это массив сообщений электронной почты. Каждый элемент массива представляет собой массив пар ключ-значение, а значение для ключа 'header' - это длинный массив пар ключ-значение.

Функция $er->GetMessage($i) возвращает массив, так что sytax
$er->GetMessage($i)["header"]['fromaddress']

кажется, что это будет работать. Итак, я в недоумении. Синтаксис стрелок не имеет для меня никакого смысла, потому что 'fromaddress' не является членом 'header' - 'header' не является объектом.

Что мне не хватает? Я выполнил поиск в разделе «Ошибка анализа: синтаксическая ошибка, неожиданность» [', ожидая', 'или'; '", и я нашел одно совпадение. Решение было «- php не было автоматического обновления, так что теперь сайт работает нормально». Я не думаю, что это относится к моей проблеме.

Код приведен ниже.
Строка 23, строка, вызвавшая сообщение об ошибке, находится в цикле for.
echo "<h3>Message received from: </h3>" . $er->GetMessage($i)["header"]->fromaddress;

Это PHP между тегами:

for ($i=0;$i<$er->GetInboxCount();$i++) 
    { // fromaddress, date, subject are from imap_headerinfo 
     echo br.br; 
     echo "<h3>Message received from: </h3>" . $er->GetMessage($i)["header"]['fromaddress']; 
     echo br.br; 
     echo "<h3>Message received on: </h3>" . $er->GetMessage($i)["header"]['date']; 
     echo br.br; 
     echo "<h3>Subject: </h3>" . $er->GetMessage($i)["header"]['subject']; 
     echo br.br; 
     echo "<h3>Message in text format:</h3>" . $er->GetMessage($i)['body_text']; 
     echo br.br; 
     echo "<h3>Message in html format: </h3>" . $er->GetMessage($i)['body_html']; 
+0

Я пытался, по крайней мере в 10 раз, чтобы включить этот паразитный кронштейн в конце. Я использовал ctrl-K, но это не сработало бы неважно, что. – jana

+1

Попробуйте: $ message = $ er-> GetMessage ($ i); $ Сообщение [ "заголовок"] -> FromAddress; – rad11

+1

Какая версия PHP вы используете? Синтаксис 'func() [...]' поддерживается в 5.4+ (см. Http://php.net/manual/en/language.types.array.php#example-105). –

ответ

0

Попробуйте использовать это:

$foo = $er->GetMessage($i); 
echo "<h3>Message received from: </h3>" . $foo["header"]->formadresss; 
+0

Yup, определенно работал. Благодаря! – jana

Смежные вопросы