Comment implémenter un nombre illimité de paramètres dans le routage Laravel

小云云
Libérer: 2023-03-17 20:52:02
original
1933 Les gens l'ont consulté

Laravel est un bon framework.Cet article vous apprendra comment implémenter un nombre non fixe de paramètres dans le routage Laravel. L'article le présente en détail à travers un exemple de code. J'espère qu'il pourra s'y référer. aider tout le monde.

... A quoi servent ces trois points ? J'ai vérifié le manuel PHP et découvert que cette chose s'appelle un nombre variable de listes de paramètres.

C'est pour quoi ça ? Le manuel PHP l'explique de cette façon.

... est une liste de paramètres qui prend en charge un nombre variable de paramètres dans une fonction définie par l'utilisateur.

... Disponible en PHP 5.6 et supérieur. En PHP 5.5 et versions antérieures, utilisez les fonctions func_num_args() , func_get_arg() et func_get_args() .

Un nombre variable de listes de paramètres, ce concept peut vous paraître abstrait.

Nous pouvons le comprendre de cette façon, nous avons personnalisé une fonction ou une certaine fonction, mais le nombre de paramètres de cette fonction n'est pas fixe, ce qui est un nombre variable de listes de paramètres.

Concernant le nombre variable de listes d'arguments, regardons deux exemples

<?php
function sum(...$numbers) {
 $acc = 0;
 foreach ($numbers as $n) {
  $acc += $n;
 }
 return $acc;
}
echo sum(1, 2, 3, 4);
?>
Copier après la connexion

Ci-dessus La routine va ; sortie :

10

Un nombre variable d'arguments sera transmis à la fonction, et la variable d'argument donnée sera un tableau.

Regardons un autre exemple :

<?php
function add($a, $b) {
 return $a + $b;
}
echo add(...[1, 2])
?>
Copier après la connexion

La routine ci-dessus affichera :

3

Un nombre variable de paramètres sera transmis à la fonction, et le tableau donné sera utilisé comme variable de paramètre.

Qu'est-ce que ce nombre variable de paramètres a à voir avec le routage Laravel ?

Dans Laravel, on est très libre de personnaliser le routage, par exemple, c'est comme ça :

Route::get(&#39;user/{id}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id)
{
 # code...
}
Copier après la connexion

Peut-être que c'est possible :

Route::get(&#39;user/{id}/{name}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id, $name)
{
 # code...
}
Copier après la connexion

Il n'y a pas de nombre fixe de paramètres dans le routage Laravel, dans le c'est le code Comment est-il réalisé ? Ce qui est utilisé est un nombre variable de paramètres.

// */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));
}
Copier après la connexion

Je dois admirer la clarté d'esprit de l'auteur de Laravel Taylor !

L'avez-vous déjà appris ? Dépêchez-vous et essayez-le.

Recommandations associées :

Étapes détaillées pour la migration et le remplissage des données dans Laravel

Méthode de réglage des performances du framework Laravel

Explication détaillée du moteur de modèle Blade dans Laravel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!