Предупреждение: переключатель таргетинга «continue» эквивалентен «break». Вы хотели использовать "продолжить 2"?

У меня есть php7.3 и symfony2.8. Когда я пытаюсь создать классы с помощью консоли, я получаю эту ошибку:

[Symfony\Component\Debug\Exception\ContextErrorException]Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

Пожалуйста, укажите свой код в вопросе. (И к редактору, пожалуйста, не добавляйте к вопросу, который OP на самом деле не сказал, настолько полезным, насколько это может показаться. Это кладет слова им в рот и сбивает их с толку.)

Tyler Roper 14.01.2019 18:45

Попробуйте "обновление композитора". Может помочь, а может и не помочь. Предупреждение является результатом недавнего «исправления» php и требует небольшого обновления для исправления. Вы также можете столкнуться с нулевым предупреждением count (). @trincot - И да, предупреждение ясное. Проблема в том, что он создается сторонней библиотекой. В очень запутанном блоке кода.

Cerad 14.01.2019 21:54

Вы проверили, соответствует ли ваш сервер минимальным требованиям? Текущая версия Symfony - 4.2.3, поэтому маловероятно, что 2.8 поддерживает PHP / 7.3, выпущенный менее двух месяцев назад.

Álvaro González 15.01.2019 09:08

Я только что проверил, что, согласно Упаковщик, Symfony / 2.8.49 был выпущен в тот же день, что и PHP / 7.3. Так что, возможно, эта версия предназначена для решения проблем совместимости (я действительно не знаю).

Álvaro González 15.01.2019 09:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
107
4
224 229
21

Ответы 21

У меня такая же проблема и эта ошибка, но в моем случае эта ошибка появляется, когда я пытаюсь запустить composer install или composer update.

и я решаю эту проблему, запустив composer self-update. это работает над моим проектом.

Если это не удается (как у меня), попробуйте ответить на этот вопрос от Avnish alok. Версия композитора, установленная apt, устарела.

Trevor 01.09.2019 06:02

Это правильный ответ, хотя он может использовать справочную информацию о том, что «Ваша версия композитора слишком старая, обновите ее». Это поможет людям, подобным Тревору, описанному выше, понять, что они на правильном пути, даже если самообновление не удается.

Matt Rabe 09.10.2019 20:17

Для меня правильным решением было просто запустить composer update во время установки, когда произошла ошибка, хотя лучше поддерживать композитор в актуальном состоянии, просто говоря для тех, кто должен подумать о том, какие последствия могут принести это в другие проекты на том же сервере. ;)

john Smith 13.08.2020 14:06

На мой взгляд, проблема связана с обратной несовместимостью с PHP 7.3 для ключевого слова continue в операторах Switch. Взгляните на раздел «Предупреждение о проблемах с переключением на продолжение таргетинга» в Обратно несовместимые изменения.

Я столкнулся с той же проблемой с Symfony 3.3 с использованием PHP 7.3, и переход на PHP 7.2 разрешил предупреждение.

Ага - это правильный ответ.

Steve Mc 23.07.2021 15:00

Или загрузите composer.phar с сайта: "https://getcomposer.org/download/" (загрузка вручную) и используйте команду:

php composer.phar require your/package

Windows 10 Профессиональная

PHP 7.3.1

Я выполнил эти команды, чтобы исправить проблему на моем рабочем столе

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php

Я обновился до PHP 7.3, и ни один из них не работал у меня до того, как я использовал,

sudo wget https://getcomposer.org/download/1.8.0/composer.phar -O /usr/local/bin/composer && sudo chmod 755 /usr/local/bin/composer

Это просто зависимость от версии. PHP 7.3

и обновление композитора сработало как шарм!

Возможно, ваш композитор уже устарел. Ниже приведены шаги по устранению ошибки.

Note: For Windows professionals, Only Step2 and Step3 is needed and done.


Шаг 1

Удаляем композитора:

sudo apt-get remove composer

Шаг 2

Скачать композитор:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Шаг 3

Запустите файл composer-setup.php

php composer-setup.php

Шаг 4

Наконец переместите композитора:

sudo mv composer.phar /usr/local/bin/composer  


Ваш композитор должен быть обновлен. Чтобы проверить это, запустите команду:

composer

Вы можете удалить загруженный композитор с помощью команды php

php -r "unlink('composer-setup.php');"

На мой взгляд, это не связано с композитором, это проблема с php 7.3.

Gabriele F. 03.09.2019 16:19

Для глобального использования можно попробовать псевдоним composer = '/ usr / local / bin / composer'

Eduard Brokan 20.10.2020 22:42

В моем случае php был обновлен с php7.2.22 до php7.3.9.

поэтому пришлось понизить версию cli php, поскольку композитор запускается на терминале

//checked php version
php -v //was 7.3.9

//changed cli version back to 7.2
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2

//checked php version 
php -v //was 7.2.22

дополнительная информация, если вы используете apache, не забудьте сохранить и cli, и apache в одной версии. в моем случае мне пришлось понизить рейтинг

//changed web version back to 7.2
sudo a2dismod php7.3
sudo a2enmod php7.2
sudo service apache2 restart

Это будет работать с другими версиями. так что не стесняйтесь переключаться между версиями. просто замените номера версий соответствующим образом

У меня такая же проблема. Проблема в том, что мы все еще используем более старую версию Symfony (2.8), которая не работает должным образом на PHP 7.3.

David Baucum 08.11.2019 22:04

On debian 9 php7.3 the answer above pasted below worked perfectly.


sudo wget https://getcomposer.org/download/1.8.0/composer.phar -O /usr/local/bin/composer && sudo chmod 755 /usr/local/bin/composer

composer self-update composer install

Теперь должно работать

Command "self-update" is not defined.
oligofren 12.10.2020 10:49

Я была такая же проблема. но исправил это, загрузив композитор и установив его с нуля.

это похоже на проблему с php7.3, я думаю.

Если в вашей системе установлена ​​другая версия, вы можете использовать это:

php7.1 /usr/bin/composer update // or wherever your composer is

это сработало для меня

Я изменил continue to continue 2 в строке 1579 в shortcodeComon.php, и это устранило мою проблему.

   if (trim($custom_link[$i]) == ""){

           continue;

    }

Измените на:

  if (trim($custom_link[$i]) == ""){

             continue 2;

   }

грубый, но эффективный ..

Q Studio 16.02.2021 13:58

Хорошее решение. Очень ценю. Я уже проголосовал за этот ответ

Mujahid Bhoraniya 07.10.2021 10:47

Вы пробовали сделать самообновление композитора?

composer self-update

или

composer install

это дает мне ошибку Command "self-update" is not defined

mrid 14.04.2020 16:38

Вы установили композитор? еще скачайте и установите композитор с их сайта здесь getcomposer.org/download

kheengz 14.04.2020 16:41

да, он был установлен. но я думаю, что с этим могла быть какая-то проблема, он перестал устанавливать компоненты. Я очистил его и снова установил, и он работает :)

mrid 14.04.2020 18:46

Если по какой-то причине ваш код не может быть обновлен, просто замените switch ... continue на switch ... break, так как в предыдущих версиях PHP это должно было работать именно так.

Чтобы устранить эту ошибку, вам нужно перейти в файл wp-config и добавить эти строки кода

define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

Ваш ответ относится к wordpress. Вопрос относительно symfony.

Asone 23.03.2020 14:54

после обновления моего xampp с 7.2.0 до 7.3.0 я столкнулся с этой проблемой, но после unistall composer.exe и установки последней версии composer.exe с composer.org проблема решена

Мне пришлось обновить доктрину / орму:

composer update doctrine/orm

Updating doctrine/orm (v2.5.13 => v2.6.6)

Я думаю, что это проблема версии, вам просто нужно удалить старую версию composer, а затем выполнить новую установку ее новой версии.

 apt remove composer

и следуйте инструкциям:

  1. загрузите композитор с официального сайта выпуска, используя следующую команду.
 wget https://getcomposer.org/download/1.6.3/composer.phar
  1. Перед тем, как продолжить установку, вы должны переименовать его перед установкой и сделать его исполняемым файлом.
  mv composer.phar composer
  chmod +x composer
  1. Теперь установите пакет, используя следующую команду.
 ./composer
  1. Теперь композитор успешно установлен, сделайте ему доступ глобально, используя следующую команду. для Ubuntu 16
 mv composer /usr/bin/

для Ubuntu 18

 mv composer /usr/local/bin/

Ответ @ aimme следует принять!

Я бы расширил его ответ комментарием @david-baucum, потому что его объяснение ясно!

Я бы также расширил его ответ, что вы можете запускать несколько версий PHP одновременно, используя ppa:ondrej/php.

Тогда вам не нужно менять версию PHP, просто вызовите композитор следующим образом: /usr/bin/php7.2 /usr/local/bin/composer install

У меня такая же проблема при запуске composer install
Я решаю это, делая в каталоге композитора php composer.phar self-update, а затем в каталоге моего проекта composer update

Извините за "копание", но я только что столкнулся с этой проблемой из-за отказа от проекта symfony3.8 на виртуальном хостинге (php 7.3.18) ...

Я решил эту проблему, установив ограничение памяти php в параметрах командной строки, примерно так:

php -dmemory_limit=-1 /path/to/the/executable

Другие вопросы по теме