callable türü
callable tür bildirimiyle bir fonksiyonun başka fonksiyonu kabul etmesini öğrenirsin.
callable tür bildirimi
Bir fonksiyona başka bir fonksiyonu parametre olarak geçirebilirsin. Bunun için callable tür bildirimini kullanırsın.
Örnek: function apply(callable $cb, int $x): int { return $cb($x); }. Burada $cb bir fonksiyondur; $cb($x) ile çağrılır.
callable üç biçimi kabul eder: fonksiyon adı dizesi ('strtoupper'), anonim fonksiyon ya da ['Sınıf', 'yöntem'] dizisi. Bu esneklik geri çağırma (callback) yazmayı kolaylaştırır.
is_callable ile kontrol
Bazen bir değerin çağrılabilir olup olmadığını önceden bilmen gerekir. is_callable($x) bu kontrolü yapar; true ya da false döndürür.
Kullanıcıdan gelen bir geri çağırma adını doğrulamak için yararlıdır. is_callable('strtoupper') doğru döner; is_callable('yok') yanlış.
Yanlış türde bir değer callable parametreye verilirse PHP TypeError fırlatır; is_callable bunu önler.
Uygulama apply fonksiyonunu tanımla
apply(callable $cb, $x) fonksiyonunu tanımla: $cb($x) döndürsün. Sonra apply(fn($n) => $n * 10, 5) çağırıp sonucu yeni satırla yazdır.
Örnek çözümü göster
function apply(callable $cb, $x) { return $cb($x); } yaz. Sonra echo apply(fn($n) => $n * 10, 5) . "\n"; çağır.
Örnek çözüm:
<?php
// apply fonksiyonunu tanımla ve arrow function ile çağır
function apply(callable $cb, $x) {
return $cb($x);
}
echo apply(fn($n) => $n * 10, 5) . "\n";
Kendini test et
-
callable tip bildirimini tamamla
<?php function apply(____ $cb, $x) { return $cb($x); } echo apply(fn($n) => $n * 10, 5) . "\n";Cevabı göster
<?php function apply(callable $cb, $x) { return $cb($x); } echo apply(fn($n) => $n * 10, 5) . "\n"; -
Hangisi geçerli bir callable biçimi DEĞİLDİR?
- 'strlen'
- ['Foo', 'bar']
- function() {}
- [1, 2, 3]
Cevabı göster
[1, 2, 3] — Doğru. [1, 2, 3] bir sayı dizisidir; çağrılabilir değildir.
-
Callable biçimlerini eşleştir
- 'strlen'
- İsim dizesi
- function() {}
- Anonim fonksiyon
- ['Foo', 'bar']
- Sınıf yöntemi dizisi
- is_callable()
- Çağrılabilir mi diye bakar