2015-09-16 75 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

對不起,我很累 –