(!) Ошибка синтаксиса: синтаксическая ошибка, неожиданный '?' в C: \ wamp64 \ www \ ProjectSymfony \ public \ index.php в строке 18 [дубликат]

Ответ сводится к тому, что означает реализовать интерфейс. Когда класс реализует интерфейс, это означает, что каждый экземпляр класса будет отвечать на каждый метод интерфейса. Когда вы реализуете метод как статический, вы можете вызвать метод без экземпляра класса, но это не соответствует обещанию реализации наследования, что метод будет доступен для каждого экземпляра класс.

17
задан piet.t 1 September 2017 в 06:48
поделиться

4 ответа

Если бы я должен был догадаться, я бы сказал, что вы установили PPA 7.1.8 только как CLI (php7-cli). Вы получаете информацию о своей версии, но ваш пакет libapache2-mod-php по-прежнему составляет 14.04, что составляет 5.6. Проверьте свою phpinfo в своем браузере, чтобы подтвердить версию. Вы также можете рассмотреть возможность перехода на Ubuntu 16.04, чтобы получить PHP 7.0 в основном.

32
ответ дан roktechie 15 August 2018 в 17:36
поделиться
  • 1
    я завершил очистку всех php 5.6 и 7.1, и переустановит 7.1, чем все в порядке, спасибо. – cuimingda 1 September 2017 в 03:27
  • 2
    Работал для меня. Обновите версию php на сервере, и теперь все работает нормально. Благодаря! – johnnyfittizio 1 September 2017 в 14:21
  • 3
    Большое вам спасибо, вы избавили меня от разочарования. Я действительно ненавижу данные конфигурации сервера, это судьба, которая чуть ли не хуже смерти. – David Lundquist 13 September 2017 в 17:39
  • 4
    Огромное спасибо. Это спасло мой день. – Pragnesh Chaudhari 14 October 2017 в 06:45
  • 5
    Ужасно, просто изменил мою версию PHP в WAMP: D – Jonjie 4 November 2017 в 10:16

Если вы столкнулись с этой ошибкой при использовании командной строки, потому что вы должны использовать php 7 для выполнения всего, что вы пытаетесь выполнить. Случилось так, что код пытается использовать оператор, доступный только в php7 +, и вызывает синтаксическую ошибку.

Если у вас уже есть php 7+ на вашем компьютере, попробуйте указать в командной строке более высокую версию php, которую хотите использовать.

export PATH=/usr/local/[php-7-folder]/bin/:$PATH

Вот точное местоположение, которое работало на основе моей установки для ссылки:

export PATH=/usr/local/php5-7.1.4-20170506-100436/bin/:$PATH

Оператор, который фактически вызвал перерыв, является «нулевым коалесцирующим оператором», который вы можно прочитать здесь:

php7 Новые операторы

1
ответ дан James Fannon 15 August 2018 в 17:36
поделиться

Если вы недавно обновили свою версию php, вы можете забыть перезагрузить службу веб-сервера.

-2
ответ дан Matricore 15 August 2018 в 17:36
поделиться

У меня была примерно такая же проблема с Laravel 5.5 на ubuntu, наконец, я нашел решение здесь для переключения между версиями php, используемыми apache:

  1. sudo a2dismod php5
  2. sudo a2enmod php7.1
  3. sudo service apache2 restart

и работает

7
ответ дан Mouhamed Fadel Diagana 15 August 2018 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: