Vitendo vya wito wa nyuma katika kazi zilizojengwa ndani ya PHP
Katika PHP kuna safu ya kazi zilizojengwa ndani,
ambazo hukubali vitendo vya wito wa nyuma kama parameta.
Kanuni ya jumla ya kufanya kazi nazo tutaisoma
kwa kutumia mfano wa kazi array_map.
Kazi hii inakubali kitendo cha wito wa nyuma kama parameta ya kwanza,
na safu ya data kama ya pili. Kazi inatumia
kitendo cha wito wa nyuma kwa kila kipengele cha safu ya data
na kurudisha safu ya data iliyobadilishwa.
Wacha tuangalie chaguzi za kutumia kazi hii kwa kuzingatia ujuzi tuliopata hapo awali.
Chaguo la 1
Wacha tutoe mzizi wa mraba kutoka kwa kila kipengele cha safu ya data
kwa kutumia kazi iliyojengwa ndani
sqrt.
Ili kufanya hivyo, kama kitendo cha wito wa nyuma tutaweka kwenye parameta
mfuatano wa herufi (string) lenye jina la kazi hiyo:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
Chaguo la 2
Wacha tuinue kila kipengele cha safu ya data kwenye mraba kwa kutumia kazi tuliyounda wenyewe. Ili kufanya hivyo, kama kitendo cha wito wa nyuma tutaweka kwenye parameta mfuatano wa herufi (string) lenye jina la kazi hiyo:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
Chaguo la 3
Wacha tubadilishe kazi yetu kuwa kazi isiyo na jina (anonymous function), iliyoandikwa kwenye kigeuzi:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
Chaguo la 4
Tutaweka kazi isiyo na jina kwenye parameta:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
Chaguo la 5
Tutumie kazi ya mshale (arrow function):
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
Chaguo la 6
Wacha sasa nguvu, ambayo tunahitaji
kuinua nambari, ibainishwe na kigeuzi cha nje
cha kitendo cha wito wa nyuma. Wacha tutumie kigeuzi hiki,
tukipata ufikiaji kwacho kupitia use:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
Chaguo la 7
Wacha tuandike tena msimbo uliopita kwa kutumia kazi ya mshale
Sasa kigeuzi $pow
kitapatikana kiotomatiki:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
Kazi za Vitendo
Imewekwa safu ya data yenye mifuatano ya herufi (strings). Tafsiri maandishi ya kila kipengele cha safu ya data hadi herufi kubwa (upper case).
Imewekwa safu ya data yenye mifuatano ya herufi (strings). Weka maandishi ya kila kipengele cha safu ya data kinyume ili wahusika waende kwa mpangilio wa nyuma.