2015-09-16 46 views
5

zrobiłem błąd w moim routes.php w laravel i wpisane : zamiast ::Co to jest: w php?

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

i dostałem komunikat o błędzie Label 'Route' already defined

prostu ciekawi, co to znaczy ...

+0

Sorry chłopaki Trasy była literówka, i wiem na temat metod statycznych ... – orestiss

+0

więc pojedynczy dwukropek w przykładzie nie jest literówka? – samrap

+0

Nie @samrap to jest pytanie, myślę, że to odpowiedź CollinD, przyjmuję, kiedy system pozwala mi ... – orestiss

Odpowiedz

7

Odkryłeś label s! Są to w większości przestarzałe i ogólnie zniechęcone konstrukcje językowe, które umożliwiają przeskakiwanie kodu za pomocą instrukcji goto, a także niektórych innych w zależności od języka.

Przykład:

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

hell: 
die("Erorr. . . or we finished. Who knows?"); 

Jest trochę (pół-legalne) funkcje, które mogą być realizowane jednak. Mimo to, wciąż nie jest dobrą praktyką:

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

Zobacz PHP docs: http://php.net/manual/en/control-structures.goto.php

+0

Nie sądzę, że o to właśnie OP pytał, jego przykład pochodzi bezpośrednio z frameworka Laravel, który nie używa 'goto' i używa' Route :: method' do definiowania tras dla aplikacji – samrap

+1

Jednak nie można wywołać metoda według 'EndOfAllTheLoops: foo', która sprawia, że ​​bardziej chodzi o zrozumienie intencji kodu. – max

+1

Wygląda na to, że OP dość szybko rozpoznał błąd i był ciekawy, jaki jest rzeczywisty efekt pojedynczego dwukropka. @Orestiss proszę wyjaśnić – CollinD

0

You powinien używać Route, a nie Routes. (Uwaga: nie powinno być S)

+0

Tak, to 's Route :) http://laravel.com/docs/5.1/routing –

+0

Tak o tym mówiłem. Oryginalny post został zmodyfikowany, ponieważ odpowiedziałem, ponieważ ma on '' 'Routes'''. Mój słaby wzrok przeoczył pojedynczą część jelita grubego, co również nie pomogło w kwestii składni. – Amo

+0

Przepraszam za pomyłkę, jestem zmęczony –