Callbacks in ingebouwde functies in PHP
In PHP zijn er een aantal ingebouwde functies
die een callback als parameter accepteren.
We bestuderen het algemene werkingsprincipe
aan de hand van de functie array_map.
Deze functie accepteert als eerste parameter
een callback, en als tweede - een array. De functie past
de callback toe op elk element van de array
en geeft de gewijzigde array terug.
Laten we eens kijken naar de opties voor het gebruik van deze functie, rekening houdend met de kennis die we eerder hebben opgedaan.
Optie 1
Halen we uit elk element van de array
de vierkantswortel met behulp van de ingebouwde
functie
sqrt.
Om dit te doen, geven we als callback-parameter een
string door met de naam van deze functie:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
Optie 2
Laten we elk element van de array kwadrateren met behulp van een door ons gemaakte gewone functie. Om dit te doen, geven we als callback-parameter een string door met de naam van deze functie:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
Optie 3
Laten we onze functie omzetten naar een anonieme functie, opgeslagen in een variabele:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
Optie 4
Laten we de anonieme functie direct als parameter doorgeven:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
Optie 5
Laten we een arrow function gebruiken:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
Optie 6
Stel dat de macht, waartoe het getal
verheven moet worden, wordt ingesteld door een externe variabele
van de callback. Laten we deze variabele gebruiken
door er toegang toe te krijgen via use:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
Optie 7
Laten we de vorige code herschrijven met een arrow function.
Nu is de variabele $pow
automatisch beschikbaar:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
Praktische opdrachten
Gegeven een array met strings. Zet de tekst van elk element in de array om naar hoofdletters.
Gegeven een array met strings. Keer de tekst van elk element in de array om, zodat de karakters in omgekeerde volgorde staan.