Verwandte Erklärungen zur Implementierung einer nicht festgelegten Anzahl von Parametern im Laravel-Routing

jacklove
Freigeben: 2023-04-02 18:54:02
Original
1958 Leute haben es durchsucht

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);
?>
Nach dem Login kopieren

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])
?>
Nach dem Login kopieren

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(&#39;user/{id}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id)
{
 # code...
}
Nach dem Login kopieren

Vielleicht ist das möglich:

Route::get(&#39;user/{id}/{name}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id, $name)
{
 # code...
}
Nach dem Login kopieren

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, &#39;callAction&#39;)) {
  return $controller->callAction($method, $parameters);
 }
 return $controller->{$method}(...array_values($parameters));
}
Nach dem Login kopieren

Ich muss Laravel-Autor Taylor für seinen brillanten Verstand bewundern!

Zusammenfassung

Artikel, die Sie interessieren könnten:

Laravel Framework Tutorial für Neulinge in Blade-Vorlagen

Erklärung des Codes zur Behebung von Miniaturansichten schlechter Qualität, die von PHP generiert wurden

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!