Laravel은 고정되지 않은 개수의 매개변수를 Laravel 라우팅에 구현하는 방법을 설명하는 좋은 프레임워크입니다. 도움이 필요한 친구들이 참고하면 좋겠습니다. .
... 이 세 점은 어디에 사용되나요? PHP 매뉴얼을 확인해보니 이게 가변 개수의 매개변수 목록이라고 불리는 것이었습니다.
이것은 무엇을 위한 것인가요? PHP 매뉴얼에서는 이렇게 설명합니다.
...은 다양한 개수의 매개변수 목록을 지원하는 사용자 정의 함수입니다.
... PHP 5.6 이상에서 사용 가능합니다. PHP 5.5 이하에서는 func_num_args()
,func_get_arg()
,和 func_get_args()
함수를 사용하세요.
다양한 매개변수 목록으로 인해 이 개념이 추상적으로 보일 수 있습니다.
이렇게 이해할 수 있습니다. 함수나 특정 기능을 사용자 정의했지만 이 함수의 매개변수 개수는 고정되어 있지 않으며 이는 매개변수 목록의 가변 개수입니다.
가변 개수의 매개변수 목록과 관련하여 두 가지 예를 살펴보겠습니다.
<?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); ?>
위 루틴은 다음을 출력합니다.
10
가변 개수의 매개변수가 함수에 전달됩니다. 지정된 매개변수 변수는 배열로 처리됩니다.
다른 예를 살펴보겠습니다.
<?php function add($a, $b) { return $a + $b; } echo add(...[1, 2]) ?>
위 루틴은 다음을 출력합니다.
3
변수 개수의 매개변수가 함수에 전달되고, 주어진 배열이 매개변수로 사용됩니다. 변하기 쉬운.
이 가변 개수의 매개변수가 Laravel 라우팅과 어떤 관련이 있나요?
Laravel에서는 라우팅을 매우 자유롭게 사용자 정의할 수 있습니다. 예를 들어 다음과 같습니다:
Route::get('user/{id}', 'UsersController@filter'); //路由对应的方法 public function filter($id) { # code... }
아마도 다음과 같습니다:
Route::get('user/{id}/{name}', 'UsersController@filter'); //路由对应的方法 public function filter($id, $name) { # code... }
이것은 아닙니다 Laravel 라우팅의 경우 코드에서 고정된 수의 매개변수가 어떻게 구현됩니까? 사용되는 것은 다양한 수의 매개변수입니다.
// */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)); }
라라벨 작가 Taylor의 빛나는 두뇌에 감탄하고 싶습니다!
아직 배우셨나요? 서둘러서 사용해 보세요.
관련 권장 사항:
Laravel의 데이터 마이그레이션 및 데이터 채우기를 위한 세부 단계
Laravel의 블레이드 템플릿 엔진에 대한 자세한 설명
위 내용은 Laravel 라우팅에서 매개변수를 무제한으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!