2015-09-16 23 views
5

ich einen Fehler in meiner routes.php in Laravel gemacht und tippte : statt ::Was ist: in PHP?

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

und ich bekam eine Fehlermeldung Label 'Route' already defined

Einfach nur neugierig, was das bedeutet ...

+0

Sorry Leute Routen war ein Tippfehler, und ich weiß, über statische Methoden ... – orestiss

+0

die einzelnen Doppelpunkt in Ihrem Beispiel ist also nicht ein Tippfehler? – samrap

+0

Nein @samrap es ist die Frage, ich denke es wird von CollinD beantwortet, ich werde akzeptieren, wenn das System mich ... – orestiss

Antwort

7

Sie haben label s entdeckt! Sie sind ein weitgehend veraltetes und allgemein entmutigtes Sprachkonstrukt, das es ermöglicht, Code über goto Statements zu springen, sowie einige andere, abhängig von der Sprache.

Beispiel:

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

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

Es gibt einige (halb-legitime) Funktionalität, die jedoch umgesetzt werden können. Das heißt, immer noch keine gute Praxis:

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

Siehe PHP-Dokumentation: http://php.net/manual/en/control-structures.goto.php

+0

Ich denke nicht, dass das ist, was OP gefragt hat, ist sein Beispiel direkt aus dem Laravel-Framework, das 'goto' nicht verwendet und' Route :: method' verwendet, um Routen für die Anwendung zu definieren – samrap

+1

Sie können jedoch nicht anrufen Methode von 'EndOfAllTheLoops: foo', die es mehr über das Verständnis der Absicht des Codes macht. – max

+1

Es scheint, als hätte OP den Fehler ziemlich schnell erkannt und war stattdessen neugierig, was der eigentliche Effekt des einzelnen Doppelpunkts ist. @Orestiss bitte klären – CollinD

0

Sie sollte Route, nicht Routes verwenden. (Hinweis, es sollte kein S sein)

+0

Ja, es 's Route :) http://laravel.com/docs/5.1/routing –

+0

Das ist, was ich gesagt habe. Der ursprüngliche Beitrag wurde bearbeitet, seit ich geantwortet habe, da er '' 'Routes''' hat. Mein armes Sehvermögen hat den einzelnen Doppelpunkt vermisst, was auch nicht mit dem Syntaxproblem behilflich ist. – Amo

+0

Sorry für den Fehler, ich bin müde –