PHP Pro Tip III: Standardvärde för nycklar i en array

Marcus Olsson,

När man skickar variabler till en funktion i PHP brukar man som bekant skriva likt på detta vis:

1function addition($number1, $number2, $number3) {
2
3}
1function addition($number1, $number2, $number3) {
2
3}

Och om man vill att de variablerna ska ha ett standardvärde i funktionen:

1function addition($number1 = 10, $number2 = 20, $number3 = 30) {
2
3}
1function addition($number1 = 10, $number2 = 20, $number3 = 30) {
2
3}

Dock så blir detta väldigt plottrigt efter ett tag, men det finns ett väldigt effektivt sätt att använda arrayer för samma syfte.

1function addition($numbers = array()) {
2 $default = array(
3 'number1' => 10,
4 'number2' => 20,
5 'number3' => 30
6 );
7
8 $numbers += $default;
9}
1function addition($numbers = array()) {
2 $default = array(
3 'number1' => 10,
4 'number2' => 20,
5 'number3' => 30
6 );
7
8 $numbers += $default;
9}

Nu skickar vi $numbers som en array istället. Och i och med
$numbers += $default; slår vi ihop de två arrayerna – och de nycklarna som saknar värde får ett från $default. Väldigt användbart i de fallen man skriver metoder som ska kunna ta emot många variabler, men vill samtidigt ha möjligheten att använda standardvärden (defaults). Snyggt, bra och enkelt.