CodeBlanks Logo Icon CodeBlanks

Closure sınıfı

PHP kursu · Uzman · Ders 8/54

Anonim fonksiyonların Closure sınıfının örnekleri olduğunu öğrenirsin.

Anonim fonksiyon ve Closure sınıfı

PHP'de ismi olmayan fonksiyona anonim fonksiyon denir. function () { return 'merhaba'; } yazımıyla oluşturulur ve değişkene atanabilir.

Her anonim fonksiyon, PHP'nin Closure sınıfının bir örneğidir. Yani $fn instanceof Closure doğrudur. Closure sözcüğü 'kapanış' demektir; fonksiyon tanımlandığı kapsamı kapsülleyebilir.

İsimsiz fonksiyonu bir değişkene atayıp sonra $fn(5) biçiminde çağırırsın. Böylece fonksiyonları veri gibi taşırsın.

Closure'u değişkene ata ve çağır

Bir closure'u $fn gibi bir değişkene atayıp sonra çağırabilirsin. $fn = function ($x) { return $x + 1; }; satırı closure'u tanımlar; satır sonundaki noktalı virgül unutulmaz.

Tanımdan sonra $fn(5) çağrısı closure'u çalıştırır ve sonucu döndürür. Tıpkı sıradan fonksiyonlar gibi parametre alır ve değer döndürür.

Tip bildirimi de yapabilirsin: $fn = function (int $x): int { return $x + 1; }; — bu, güvenliği artırır.

Uygulama Çift katını döndüren closure

$double adında bir closure tanımla: parametresi $x, geriye $x * 2 döndürsün. Sonra $double(8) çağırıp sonucu yeni satırla yazdır.

Örnek çözümü göster
$double değişkenine function ($x) { return $x * 2; } ata. Sonra echo $double(8) . "\n"; yaz.
Örnek çözüm:
<?php
// Çift katını döndüren closure yaz ve çağır
$double = function ($x) {
    return $x * 2;
};
echo $double(8) . "\n";

Kendini test et

  1. Bir anonim fonksiyon hangi sınıfın örneğidir?

    • stdClass
    • Closure
    • Function
    • Lambda
    Cevabı göster

    Closure — Doğru. Her anonim fonksiyon PHP'de Closure sınıfının bir örneğidir.

  2. Closure tanımını tamamla

    <?php
    $fn = ____ ($n) {
        return ['val' => $n * 2];
    };
    print_r($fn(5));
    
    Cevabı göster
    <?php
    $fn = function ($n) {
        return ['val' => $n * 2];
    };
    print_r($fn(5));
    
  3. Closure kavramlarını eşleştir

    function () {}
    Anonim fonksiyon
    Closure
    Anonim fonksiyonun sınıfı
    $fn(5)
    Closure'u çağırır
    instanceof Closure
    Closure mı diye bakar

Uzman bölümündeki tüm dersler