Ich habe kürzlich einen interessanten Ort entdeckt, als ich Laravel lernte. Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Implementierung einer variablen Anzahl von Parametern im Laravel-Routing vor Die Einleitung ist sehr detailliert. Freunde, die sie benötigen, können sie sich gemeinsam ansehen.
Vorwort
Ich lerne und nutze es auch und bewerbe es im Unternehmen Im Laravel-Quellcode habe ich kürzlich einen besonders interessanten Code gefunden, bitte schauen Sie sich diesen an:
... Wofür werden diese drei Punkte verwendet? Ich habe im PHP-Handbuch nachgeschaut und herausgefunden, dass es sich bei diesem Ding um eine variable Anzahl von Parameterlisten handelt.
Wofür ist das? Das PHP-Handbuch erklärt es so.
... ist eine Parameterliste, die eine variable Anzahl von Parametern in einer benutzerdefinierten Funktion unterstützt.
... Verfügbar in PHP 5.6 und höher. Verwenden Sie in PHP 5.5 und früher die Funktionen func_num_args()
, func_get_arg()
und func_get_args()
.
Eine variable Anzahl von Parameterlisten, dieses Konzept mag Ihnen abstrakt erscheinen.
Wir können es so verstehen: Wir haben eine Funktion oder eine bestimmte Funktion angepasst, aber die Anzahl der Parameter dieser Funktion ist nicht festgelegt, es handelt sich um eine variable Anzahl von Parameterlisten.
Bezüglich der variablen Anzahl von Parameterlisten schauen wir uns zwei Beispiele an
<?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); ?>
Die obige Routine gibt Folgendes aus:
10
Eine variable Anzahl von Parametern wird an die Funktion übergeben und die angegebene Parametervariable wird als Array verwendet.
Sehen wir uns ein weiteres Beispiel an:
<?php function add($a, $b) { return $a + $b; } echo add(...[1, 2]) ?>
Die obige Routine gibt Folgendes aus:
3
Eine variable Anzahl von Parametern wird an die Funktion übergeben und das angegebene Array wird als Parametervariable verwendet.
Was hat diese variable Anzahl von Parametern mit dem Laravel-Routing zu tun?
In Laravel können wir das Routing sehr frei anpassen, wie zum Beispiel:
Route::get('user/{id}', 'UsersController@filter'); //路由对应的方法 public function filter($id) { # code... }
Vielleicht ist das möglich:
Route::get('user/{id}/{name}', 'UsersController@filter'); //路由对应的方法 public function filter($id, $name) { # code... }
Wie wird diese nicht festgelegte Anzahl von Parametern im Laravel-Routing im Code implementiert? Es wird eine variable Anzahl von Parametern verwendet.
// */vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); }
Ich muss Laravel-Autor Taylor für seinen brillanten Verstand bewundern!
Zusammenfassung
Laravel Framework Tutorial für Neulinge in Blade-Vorlagen
implementiert von PHP Stack Beispielerklärung zur Datenstruktur
Das obige ist der detaillierte Inhalt vonVerwandte Erklärungen zur Implementierung einer nicht festgelegten Anzahl von Parametern im Laravel-Routing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!