I want to call a method like that:
public function to(Address|string ...$addresses) {}
I can call it with $obj->to("my-address")
. But, when I want to give a list of address, I’m using:
$myList = [ "address-1", "address-2" ];
$obj->to($myList);
But I get this error: must be of type SymfonyComponentMimeAddress|string, array given
Even if it’s with []
:
How can I use array as parameters?
2
Answers
You’re using
...
to take every argument. You should spread your array before passing it toto()
:You need to add
...
in the call to the function as well. That syntax has two complementary meanings, both documented on the same page of the manual.So:
Means the same as:
And then the
...$addresses
in the function declaration makes that back into an array, checking that each item matches the type declarationAddress|string
.