2015-09-16 27 views
5

我在我的laravel routes.php文件作出了错误和类型:代替::什么是:在PHP中?

Route:get('about','[email protected]'); 
Route:get('contact','[email protected]'); 

,我得到一个错误信息Label 'Route' already defined

只是好奇这是什么意思?

+0

对不起球员路线是一个错字,我知道静态方法... – orestiss

+0

所以,在你的榜样单冒号不一个错字? – samrap

+0

没有@samrap这是问题,我认为这是由CollinD回答,我会接受系统让我... – orestiss

回答

7

您已经发现label s!他们基本上是过时的,通常不鼓励的语言结构,它允许通过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?"); 

有可然而来实现一些(半合法)功能。尽管如此,仍然没有一个很好的做法:

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!" 

查看PHP文档:http://php.net/manual/en/control-structures.goto.php

+0

我不认为这是OP询问的内容,他的示例直接来自Laravel框架,它不使用'goto'并使用'Route :: method'为应用程序定义路由 – samrap

+1

但是,您无法调用方法'EndOfAllTheLoops:foo',这使得它更多地了解代码的意图。 – max

+1

看起来OP很快就发现了这个错误,而不是好奇单个冒号的实际效果是什么。 @Orestiss请澄清 – CollinD

0

你应该使用Route,而不是Routes。 (注意,不应该有S)

+0

是的'路线:) http://laravel.com/docs/5.1/routing –

+0

这就是我所说的。原来的文章已经被编辑了,因为我有回答,因为它有'''Routes'''。我可怜的视力错过了单一的结肠,虽然这也不利于语法问题。 – Amo

+0

对不起,我很累 –