Explained better by this PHP article.
Passing a parameter by reference is useful if you want to pass a parameter and edit it without having to return it.
You define a parameter with reference with the & symbol like so:
$johnLennon = [ 'alive' => true, 'name' => 'John Lennon', ]; function kill(array &$toBeKilled): void { $toBeKilled['alive'] = false; } kill($johnLennon); // John Lennon now looks like this: // $johnLennon = [ // 'alive' => false, // 'name' => 'John Lennon', // ]; debug($johnLennon);
Many PHP array functions also use this, so you don't have to keep overwriting your variables after doing an action on the array like adding an element. Example array_unshift.