警告:“继续”定位开关等效于“中断”。您是要使用“继续2”吗?[关闭]


78

我有php7.3和symfony2.8,当我尝试使用控制台创建类时,出现此错误:

[Symfony \ Component \ Debug \ Exception \ ContextErrorException]警告:“继续”定位开关等效于“中断”。您是要使用“继续2”吗?


2
请在问题中包含您的代码。(对编辑来说,请不要在OP并未真正说过的问题上添加任何内容,尽管看起来似乎很有帮助。这会在他们的嘴里说出话来,并造成混乱。)
Tyler Roper

尝试“ composer更新”。可能会或可能不会有帮助。该警告是最近的php“修复”的结果,需要稍作更新才能修复。您可能还会遇到count()null警告。@trincot-是的,警告很明确。问题在于它是由第三方库生成的。在一个非常混乱的代码块中。
塞拉德

您是否已验证服务器是否符合最低要求?当前的Symfony版本是4.2.3,因此2.8支持PHP / 7.3的可能性很小,该版本发布不到2个月。
阿尔瓦罗·冈萨雷斯

根据Packagist的说法,我刚刚检查,Symfony / 2.8.49与PHP / 7.3发行于同一天。因此,也许该版本旨在解决兼容性问题(我不太了解)。
阿尔瓦罗·冈萨雷斯

Answers:


124

我也遇到了同样的问题,并且也出现了此错误,但是在我的情况下,当我尝试运行composer install或时会显示此错误composer update

我通过运行来解决这个问题composer self-update。它适用于我的项目。


如果失败了(对我来说),那么接下来是尝试Avnish alok给出的答案。apt安装的作曲家版本太旧了。
Trevor

这是正确的答案,尽管它可以使用说明“您的作曲者的版本太旧,请对其进行更新”的背景信息。这将帮助像上面的Trevor这样的人意识到,即使自我更新失败,他们也会走上正确的道路。
马特·拉贝

对我来说,正确的解决方案是composer update在安装时运行,但会发生错误,尽管使作曲家始终保持最新状态是更好的选择,但对于那些必须考虑哪些影响可能将其带到同一服务器上的其他项目的人来说,这是最好的选择; )
约翰·史密斯

47

也许您的作曲家已经过时了。以下是摆脱该错误的步骤。

注意:对于Windows专业人士,只需执行Step2和Step3。


步骤1

删除作曲家:

sudo apt-get remove composer

第2步

下载作曲家:

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

第三步

运行composer-setup.php文件

php composer-setup.php

第四步

最后移动作曲家:

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


您的作曲家应该立即更新。要检查它运行命令:

作曲家

您可以通过php命令删除下载的作曲家

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

1
在我看来,这与作曲家无关,而是php 7.3的问题
Gabriele F.

1
在全球范围内使用可以尝试别名作曲家= '在/ usr / local / bin目录/作曲家'
爱德华Brokan

27

在我看来,该问题是continueSwitch语句中的关键字与PHP 7.3向后不兼容。查看“向后不兼容的更改”中的“继续定向交换机发出警告”部分。

我在使用PHP 7.3的Symfony 3.3中遇到了同样的问题,降级到PHP 7.2解决了该警告。


21

我升级到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

作曲家的更新就像一个魅力!


10

composer self-update composer install

现在,它应该可以工作

在此处输入图片说明


1
Command "self-update" is not defined.
oligofren

9

您是否尝试过进行作曲家的自我更新?

composer self-update

要么

composer install


这给了我错误Command "self-update" is not defined
凌晨

您安装了作曲家吗?否则,从他们的网站上下载并安装作曲家getcomposer.org/download
kheengz

是的,它已安装。但我认为它可能存在一些问题,它停止安装组件。我清除了它,然后再次安装,它可以正常工作:)
凌晨

6

Windows 10专业版

PHP 7.3.1

我运行了这些命令以解决台式机上的问题

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

5

在我的情况下,php从php7.2.22升级到php7.3.9。

所以不得不降级cli php,因为composer在终端上运行

//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

这将与其他版本一起使用。因此请随时在版本之间切换。只需适当地替换版本号


1
我有同样的问题。问题在于,我们仍在使用旧版本的Symfony(2.8),该版本在PHP 7.3上无法正常工作。
David Baucum

4

我更改了在shortcodeComon.php中继续在第1579行的第2行,它解决了我的问题

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

           continue;

    }

改成:

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

             continue 2;

   }



2

我想这似乎是php7.3的问题。

如果您的系统上安装了其他版本,则可以使用以下版本:

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

它对我有用


2

将我的xampp从7.2.0升级到7.3.0后,我遇到了这个问题,但是在卸载composer.exe并从composer.org安装最新的composer.exe之后,此问题已解决


2

我认为这是一个版本问题,您只需卸载旧版本的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/

1

在debian 9 php7.3上,上面粘贴的答案完美地起作用了。


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

1

我必须升级教义/规范:

composer update doctrine/orm

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

1

运行时遇到相同的问题,我先composer install
在composer目录中php composer.phar self-update然后在项目目录中进行解决composer update



0

@aimme的答案应该被接受!

我会用@ david-baucum的评论来扩展他的答案,因为他的解释很清楚!

我还将扩大他的回答,即您可以使用来同时运行多个PHP版本ppa:ondrej/php

然后,您无需更改PHP版本,只需像这样调用作曲家即可: /usr/bin/php7.2 /usr/local/bin/composer install


0

对不起,“抱歉”,但是我只是通过在共享主机上使用symfony3.8项目部署(php 7.3.18)来解决了这个问题。

我通过在命令行选项中设置php内存限制来解决此问题,如下所示:

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


-1

如果您的代码由于某种原因而无法更新,只需将您的更改switch ... continueswitch ... break,就像在以前版本的PHP中那样就可以这样做。


-4

为了消除此错误,您必须转到wp-config文件并添加以下代码行

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

2
您的答案与wordpress有关。这个问题与symfony有关。
ASONE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.