什么是:在PHP?

ore*_*iss 6 php

我在laravel中的routes.php中输入错误:而不是输入::

Route:get('about','PagesController@about');
Route:get('contact','PagesController@contact');
Run Code Online (Sandbox Code Playgroud)

我收到了一条错误消息 Label 'Route' already defined

只是好奇这意味着什么......

Col*_*inD 6

你发现了labels!它们是一种基本上过时且通常不鼓励的语言结构,允许通过goto语句跳转代码,以及其他一些依赖于语言的语言.

例:

if (!array_key_exists('data', $_GET)) { goto hell; }
echo $_GET['data'] . " is the data I received.";

hell:
die("Erorr. . . or we finished. Who knows?");
Run Code Online (Sandbox Code Playgroud)

然而,可以实现一些(半合法的)功能.那说,仍然不是一个好习惯:

for ($i = 0; $i < 999; $i++) {
  for ($j = 0; $j < 999; $j++) {
    for ($k = 0; $k < 999; $k++) {
      if ($someCondition)
        goto EndOfAllTheLoops; //Look, we broke out of ALL three loops!
    }
  }
}

EndOfAllTheLoops:
echo "We made it out!"
Run Code Online (Sandbox Code Playgroud)

请参阅PHP文档:http://php.net/manual/en/control-structures.goto.php