Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/48: Рейтинг темы: голосов - 48, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
1

Parse error: syntax error, unexpected '[', expecting ')' in

11.10.2015, 11:28. Показов 9436. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет форумчане. Помогите пожалуйста не могу понять

PHP
1
return array('count' => $res_count->fetch(PDO::FETCH_ASSOC)['count'], 'totalCount' => $res_total_count['count'], 'text' => implode('', $text), 'pages' => $pages);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2015, 11:28
Ответы с готовыми решениями:

Не работает код :( Parse error: syntax error, unexpected '{', expecting T_FUNCTION
Здравствуйте. Помогите пожалуйста запустить код на сайте. Сейчас выдает ошибку Parse error: syntax...

Исправить ошибку Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
Ошибка:Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in...

В чем ошибка (Parse error: syntax error, unexpected '$i' (T_VARIABLE), expecting ';') ?
private function select($table_name,$fields,$where="",$order="",$up=true,$limit="") {...

Ошибка Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRIN
При запуске локального сервера, выдает эту ошибку. Parse error: syntax error, unexpected...

11
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
11.10.2015, 11:34 2
Недопустимый символ [. Очевидно, здесь:
Цитата Сообщение от OrenZeN Посмотреть сообщение
PHP
1
$res_count->fetch(PDO::FETCH_ASSOC)['count']
1
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
11.10.2015, 11:38  [ТС] 3
Мне бы пальцем ткнуть что на что изменить чтоб заработало, я в php можно сказать не бум бум
0
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
11.10.2015, 12:00 4
OrenZeN, удалить ['count'].
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
11.10.2015, 12:13 5
OrenZeN, замените Вашу строку кода на которую ругается php вот таким блоком кода

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$fetch_count = $res_count->fetch(PDO::FETCH_ASSOC);
 
$ret = array(
 
         'count' => $fetch_count['count'], 
 
    'totalCount' => $res_total_count['count'], 
 
          'text' => implode('', $text), 'pages' => $pages
 
);
 
return $ret;
Может быть заработает. Хз.

Добавлено через 7 минут
Цитата Сообщение от Jodah
OrenZeN, удалить ['count']
Jodah, наверное нельзя. Вот здесь
PHP
1
$res_count->fetch(PDO::FETCH_ASSOC)
возвращается массив. Далее по ключу count
PHP
1
['count']
он записывается в массив
PHP
1
array('count' =>
и возвращается
PHP
1
return
из функции.

Здесь что-то с правильностью доступа к массивам. Вот

PHP
1
2
3
4
5
6
7
8
9
10
11
12
function foo() {
 
    $ret = array(
        
        'bar' => 'bar',
 
    );
 
    return $ret;
}
 
echo foo()['bar'];
Код
( ! ) Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\VertrigoServ\www\test36.php on line 47
Добавлено через 4 минуты
http://php.net/manual/ru/pdostatement.fetch.php

Извлекает следующую строку из результирующего набора объекта PDOStatement. Параметр fetch_style определяет, в каком виде PDO вернет эту строку.
PDO::FETCH_ASSOC: возвращает массив, индексированный именами столбцов результирующего набора
Вот эта ошибка

Код
Parse error: syntax error, unexpected '[', expecting ')' in
говорит, как бы, неожиданный символ левой квадратной скобки, надо бы вместо нее поставить правую круглую скобку. Если не ошибаюсь. Но по этим отчетам не всегда понять что же не так с синтаксисом текста скрипта.
0
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
11.10.2015, 12:16  [ТС] 6
Цитата Сообщение от tolimadokara Посмотреть сообщение
OrenZeN, замените Вашу строку кода на которую ругается php вот таким блоком кода

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$fetch_count = $res_count->fetch(PDO::FETCH_ASSOC);
 
$ret = array(
 
         'count' => $fetch_count['count'], 
 
    'totalCount' => $res_total_count['count'], 
 
          'text' => implode('', $text), 'pages' => $pages
 
);
 
return $ret;
Может быть заработает. Хз.

Добавлено через 7 минут

Jodah, наверное нельзя. Вот здесь
PHP
1
$res_count->fetch(PDO::FETCH_ASSOC)
возвращается массив. Далее по ключу count
PHP
1
['count']
он записывается в массив
PHP
1
array('count' =>
и возвращается
PHP
1
return
из функции.

Здесь что-то с правильностью доступа к массивам. Вот

PHP
1
2
3
4
5
6
7
8
9
10
11
12
function foo() {
 
    $ret = array(
        
        'bar' => 'bar',
 
    );
 
    return $ret;
}
 
echo foo()['bar'];
Код
( ! ) Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\VertrigoServ\www\test36.php on line 47
Добавлено через 4 минуты
http://php.net/manual/ru/pdostatement.fetch.php





Вот эта ошибка

Код
Parse error: syntax error, unexpected '[', expecting ')' in
говорит, как бы, неожиданный символ левой квадратной скобки, надо бы вместо нее поставить правую круглую скобку. Если не ошибаюсь. Но по этим отчетам не всегда понять что же не так с синтаксисом текста скрипта.
Вот полный код
yadi.sk/d/qKqYCzKMjevvS
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
11.10.2015, 12:24 7
Цитата Сообщение от OrenZeN
Вот полный код
OrenZeN, Вы все же замените вот этот код

PHP
1
return array('count' => $res_count->fetch(PDO::FETCH_ASSOC)['count'], 'totalCount' => $res_total_count['count'], 'text' => implode('', $text), 'pages' => $pages);
на вот этот код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$fetch_count = $res_count->fetch(PDO::FETCH_ASSOC);
 
$ret = array(
 
         'count' => $fetch_count['count'], 
 
    'totalCount' => $res_total_count['count'], 
 
          'text' => implode('', $text), 'pages' => $pages
 
);
 
return $ret;
сохраните изменения в файле и заново протестируйте движок в котором участвует код. А если работать не будет - посмотрим что там в Яндекс-диск.
0
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
11.10.2015, 12:26  [ТС] 8
Цитата Сообщение от tolimadokara Посмотреть сообщение
OrenZeN, Вы все же замените вот этот код

PHP
1
return array('count' => $res_count->fetch(PDO::FETCH_ASSOC)['count'], 'totalCount' => $res_total_count['count'], 'text' => implode('', $text), 'pages' => $pages);
на вот этот код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$fetch_count = $res_count->fetch(PDO::FETCH_ASSOC);
 
$ret = array(
 
         'count' => $fetch_count['count'], 
 
    'totalCount' => $res_total_count['count'], 
 
          'text' => implode('', $text), 'pages' => $pages
 
);
 
return $ret;
сохраните изменения в файле и заново протестируйте движок в котором участвует код. А если работать не будет - посмотрим что там в Яндекс-диск.
После добавления вашего варианта показывает на другую ошибку
Parse error: syntax error, unexpected '[' in \base.php on line 787
0
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
11.10.2015, 12:35 9
Цитата Сообщение от OrenZeN Посмотреть сообщение
Parse error: syntax error, unexpected '[' in \base.php on line 787
Так сделайте по аналогии с предложенным выше вариантом. Или хотя бы код этой строки покажите.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
11.10.2015, 12:37 10
Лучший ответ Сообщение было отмечено OrenZeN как решение

Решение

Цитата Сообщение от OrenZeN
После добавления вашего варианта показывает на другую ошибку
Parse error: syntax error, unexpected '[' in \base.php on line 787
Ок. Скопируйте вот эту строку №787 из файла base.php сюда. Я её сейчас не найду, т.к. там строки сместились на +13 строк после добавления кода. Вот наверное она
PHP
1
$nexp = [];
Если это она и есть - замените её на вот это
PHP
1
$nexp = array();
Возможно этот скрипт создан под старую версию php. Там таких комбинаций
PHP
1
[]
в скрипте много.
Если это возможно - переключите на вашем хостинге версию php на более старую, возможно на самую старую. На некоторых веб серверах есть такая возможность.
1
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
11.10.2015, 12:41  [ТС] 11
Цитата Сообщение от tolimadokara Посмотреть сообщение
Ок. Скопируйте вот эту строку №787 из файла base.php сюда. Я её сейчас не найду, т.к. там строки сместились на +13 строк после добавления кода. Вот наверное она
PHP
1
$nexp = [];
Если это она и есть - замените её на вот это
PHP
1
$nexp = array();
Возможно этот скрипт создан под старую версию php. Там таких комбинаций
PHP
1
[]
в скрипте много.
Если это возможно - переключите на вашем хостинге версию php на более старую, возможно на самую старую. На некоторых веб серверах есть такая возможность.
Да проблема была иза php версии, спасибо большое.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
11.10.2015, 12:52 12
Цитата Сообщение от OrenZeN
Да проблема была иза php версии, спасибо большое.
Да. Оказывается что короткий синтаксис массивов был введен в более ранних версиях php. То есть, наоборот - надо повысить версию php что бы работало
PHP
1
$arr = []
http://habrahabr.ru/post/139239/ 2 марта 2012 в 02:24
http://docs.php.net/manual/ru/... .array.php
Начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на [].
то есть, надо бы повысить версию php на сервере.
1
11.10.2015, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2015, 12:52
Помогаю со студенческими работами здесь

PHP Parse error: syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$' in
Всем привет! Делаю один скрипт, когда пытаюсь запустить - вижу ошибку: PHP Parse error: ...

Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
Здравствуйте! Помогите чайнику. По-ошибке удалил базу данных. Восстановил из бекапа, теперь вместо...

Parse error: syntax error, unexpected T_TRY, expecting T_FUNCTION
Возникает синтаксическая ошибка Parse error: syntax error, unexpected T_TRY, expecting T_FUNCTION...

Parse error: syntax error, unexpected T_NAMESPACE, expecting T_STRING or
Уважаемые, прошу помощи. Поскольку сайт создавал не я, а только подхватил из третьих (???) рук, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru