Колбеци у уграђеним функцијама у PHP
У PHP постоји низ уграђених функција,
које као параметар примају колбеке.
Општи принцип рада са њима ћемо проучити
на примеру функције array_map.
Ова функција првим параметром прима
колбек, а другим - низ. Функција примењује
колбек на сваки елемент низа
и враћа измењени низ.
Хајде да погледамо варијанте коришћења ове функције узимајући у обзир знања која смо раније стекли.
Варијанта 1
Извући ћемо из сваког елемента низа
квадратни корен помоћу уграђене
функције
sqrt.
За то ћемо као колбек параметром проследити
стринг са именом те функције:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
Варијанта 2
Подићи ћемо сваки елемент низа на квадрат помоћу креиране наше обичне функције. За то ћемо као колбек параметром проследити стринг са именом те функције:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
Варијанта 3
Преправићемо нашу функцију у анонимну, записану у променљиву:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
Варијанта 4
Проследићемо анонимну функцију параметром:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
Варијанта 5
Користићемо стреличасту функцију:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
Варијанта 6
Нека сада степен, у који треба
подићи број, буде задат спољном променљивом
колбека. Искористићемо ову променљиву,
добивши приступ њој преко use:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
Варијанта 7
Преписаћемо претходни код преко стреличасте
функције. Сада ће променљива $pow
бити доступна аутоматски:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
Практични задаци
Дат је низ са стринговима. Преведите текст сваког елемента низа у велика слова.
Дат је низ са стринговима. Обрните текст сваког елемента низа тако да карактери иду у обрнутом редоследу.