2017-08-20 4 views
-5

Es wird für das SlimFramework verwendet. Das erste Argument ist das Routermuster und das zweite Argument sollte ein Rückruf sein. Mein Lehrer gab uns eine Klasse cdApi, die in einem Media Namensraum ist. Ich verstehe, dass die ::class eine voll qualifizierte Klassennamenauflösung zurückgibt, dann wird es verkettet mit dem Teil, den ich NICHT VERSTEHE: ":getOne". getOne ist eine Funktion, aber ich sah nie den Doppelpunkt so, was bedeutet es?Was bedeutet der einzelne Doppelpunkt in dieser PHP-Anweisung?

$app->get('/super', \cdApi::class . ':getOne'); 
+0

Es ist in Anführungszeichen, die es Text macht. –

+0

aber es bewertet irgendwie einen Rückruf, wie? – user3646717

+0

Dieser Code ist hier nicht angegeben. Stellen Sie eine [mcve] bereit. –

Antwort

3

Schlanke Rahmen hat eine Routing-Funktion namens „Container Resolution“, und das ist, was Sie sehen, wenn Sie die einzelnen Doppelpunkt zu sehen. Sehen Sie sich die schlanke docs:

https://www.slimframework.com/docs/objects/router.html

Sie nicht, eine Funktion zu definieren, für Ihre Routen beschränkt sind. In Slim gibt es ein paar verschiedene Möglichkeiten, um Ihre Route Action-Funktionen zu definieren.

  • container_key:

    Neben einer Funktion, können Sie verwenden Methode

  • Klasse: Methode
  • Eine aufrufbare Klasse
  • container_key

Diese Änderung der Funktionalität aktiviert ist Die Callable Resolver-Klasse von Slim. Es übersetzt einen String-Eintrag in einen Funktionsaufruf.

Ihr Beispiel:

$app->get('/', '\HomeController:home'); 
-1

Der Doppelpunkt ist eine statische Methode Zugriff in PHP

Beispiel statische Definition:

$var = Foo::aStaticMethod() 

In PHP, die:

class Foo { 
    public static function aStaticMethod() { 
     return 'Hello World' 
    } 
} 

, die wie so genannt werden kann Die statische Eigenschaft 'class' wird automatisch einer Klasse zugewiesen (siehe: http://php.net/manual/en/migration55.new-features.php#migration55.new-features.class-name)

Beispiel:

class Foo {} 
print Foo::class //prints 'Foo' 
+0

aber ist kein doppelter Doppelpunkt, ist einzelner Doppelpunkt – user3646717

+0

OPs Frage ist über den einzelnen Doppelpunkt in den Anführungsstrichen, und OP erklärt, dass OP den doppelten Doppelpunkt versteht. –

+1

Bitte lesen Sie die OP-Frage sorgfältig, wie er bereits festgestellt hat, dass er den Doppelpunkt versteht –