Closure sınıfı
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
-
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.
-
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)); -
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