კოლბექები 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);
?>
პრაქტიკული ამოცანები
მოცემულია მასივი სტრიქონებით. თარგმნეთ თითოეული ელემენტის ტექსტი ზედა რეგისტრში.
მოცემულია მასივი სტრიქონებით. შეაბრუნეთ თითოეული ელემენტის ტექსტი ისე, რომ სიმბოლოები მიდიოდნენ უკუთანმიმდევრობით.