Kollbëqet në funksionet e integruara në PHP
Në PHP ekziston një sërë funksionesh të integruara,
që si parametër pranojnë kollbëqe.
Parimin e përgjithshëm të punës me to do ta studiojmë
në shembullin e funksionit array_map.
Ky funksion si parametër të parë pranon
një kollbëq, dhe si të dytë - një array. Funksioni aplikon
kollbëqin në çdo element të array
dhe kthen array-in e modifikuar.
Të shohim variantet e përdorimit të këtij funksioni duke marrë parasysh njohuritë e marra më parë.
Variant 1
Të nxjerrim nga çdo element i array
rrenjen katrore duke përdorur funksionin e integruar
sqrt.
Për këtë, si kollbëq do të kalojmë si parametër
vargun me emrin e këtij funksioni:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
Variant 2
Të ngremë çdo element të array në katror duke përdorur një funksion të krijuar nga ne. Për këtë, si kollbëq do të kalojmë si parametër vargun me emrin e këtij funksioni:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
Variant 3
Të konvertojmë funksionin tonë në një funksion anonim, të regjistruar në një variabël:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
Variant 4
Të kalojmë funksionin anonim si parametër:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
Variant 5
Të përdorim funksionin shigjetor:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
Variant 6
Le të themi që fuqia, në të cilën duhet
të ngremë numrin, përcaktohet nga një variabël e jashtme
e kollbëqit. Le të përdorim këtë variabël,
duke marrë akses te ajo përmes use:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
Variant 7
Të rishkruajmë kodin e mëparshëm duke përdorur funksionin shigjetor.
Tani variabla $pow
do të jetë e disponueshme automatikisht:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
Detyra praktike
Është dhënë një array me vargje. Përktheni tekstin e çdo elementi të array në regjistër të sipërm.
Është dhënë një array me vargje. Ktheni tekstin e çdo elementi të array në mënyrë të tillë që simbolet të shkojnë në rend të kundërt.