PHP'de Geri Çağırım Fonksiyonları

Geri çağırım (callback), başka bir fonksiyona parametre olarak geçirilen fonksiyona denir.

Bir örnek üzerinden gidelim. Birinci parametre olarak bir sayı, ikinci parametre olarak da bir geri çağırım alan bir fonksiyonumuz olsun:

php<?php
  function func($num, $calb)
  {
    
  }
?>

Fonksiyonun içinde, iletilen sayı için geri çağırımımızın çağrılmasını sağlayalım:

php<?php
  function func($num, $calb)
  {
    echo $calb($num);
  }
?>

Şimdi fonksiyonumuza geri çağırım iletmek için hangi seçeneklerin olduğuna bir bakalım.

Seçenek 1

Geri çağırımımız sıradan bir fonksiyon olabilir:

php<?php
  function calb($num) {
    return $num ** 2;
  }
?>

Bu durumda, geri çağırım olarak fonksiyonumuzun adını iletiriz:

php<?php
  func(3, 'calb');
?>

func fonksiyonunun içinde geri çağırımımız ismiyle çağrılacaktır.

Seçenek 2

Geri çağırımımız, bir değişkene atanmış anonim bir fonksiyon olabilir:

php<?php
  $calb = function($num) {
    return $num ** 2;
  };
?>

Bu durumda, parametre olarak fonksiyonu tutan değişkeni iletiriz:

php<?php
  func(3, $calb);
?>

Seçenek 3

Anonim fonksiyon doğrudan parametre olarak iletilbilir:

php<?php
  func(3, function($num) {
    return $num ** 2;
  });
?>

Seçenek 4

Ok fonksiyonu kullanılarak kod kısaltılabilir:

php<?php
  func(3, fn($num) => $num ** 2);
?>

Pratik Görevler

Задание 1

Diziyi ve dizinin her bir elemanına uygulanacak bir geri çağırımı parametre olarak alan bir fonksiyon verilmiştir:

php<?php
  function func($arr, $calb)
  {
    $res = [];
    
    foreach ($arr as $elem) {
      $res[] = $calb($elem);
    }
    
    return $res;
  }
?>

Sayılardan oluşan bir dizi ve iletilen sayının karesini alan bir geri çağırımı parametre olarak ileterek bu fonksiyonu çağırın.