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); ?>
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]) ?>
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('user/{id}', 'UsersController@filter'); //路由对应的方法 public function filter($id) { # code... }
Peut-être que c'est possible :
Route::get('user/{id}/{name}', 'UsersController@filter'); //路由对应的方法 public function filter($id, $name) { # code... }
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, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); }
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!