Skip to content

Update http_kernel_controller_resolver.rst #16496

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Update http_kernel_controller_resolver.rst #16496

wants to merge 1 commit into from

Conversation

wolkenheim
Copy link

I stumbled upon an exception: Uncaught TypeError: LeapYearController::index(): Argument #1 ($year) must be of type int, array given, called in /var/www/web/front.php on line 32 and defined in /var/www/src/routes.php:10

And this makes sense: getArguments() returns indeed an array with the parameters for the Controller method. However, the index method in the LeapYearController (or in general any controller) does not expect an array but single variables.

(new LeapYearController)->index(['year' => 2000]) is wrong, and this is happening here when an array is passed into call_user_func().

Fix: use spread operator for array destructuring / unpacking to pass in array values as variables. This is on PHP8.1 btw.

I stumbled upon an exception:  Uncaught TypeError: LeapYearController::index(): Argument #1 ($year) must be of type int, array given, called in /var/www/web/front.php on line 32 and defined in /var/www/src/routes.php:10

This makes sense: getArguments() return indeed an array with the parameters. The index method in the LeapYearController does not expect an array at all. (new LeapYearController)->index(['year' => 2000]) is wrong, and this is happening here when an array is passed into call_user_func(). 

Fix: use spread operator for array destructuring / unpacking to pass in array values as variables. This is on PHP8.1 btw.
@carsonbot carsonbot added this to the 5.4 milestone Feb 11, 2022
@wolkenheim
Copy link
Author

My apologies. In the text it is "call_user_func_array" and not as I misread "call_user_func". So the page is right, I was wrong. This can happen when you code along and don´t just copy & paste from a tutorial.

@wolkenheim wolkenheim closed this Feb 11, 2022
@wolkenheim wolkenheim deleted the patch-1 branch February 11, 2022 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants