Geri Çağırma (Callback) Fonksiyonları
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 4 / 68.
Geri çağırma fonksiyonu (callback function), başka bir fonksiyona argüman olarak aktarılan bir fonksiyondur. Fonksiyonu hemen çağırmak yerine, ismini iletirsiniz; böylece alan fonksiyon, gerektiğinde onu daha sonra çağırabilir.
Bir fonksiyonu geri çağırma (callback) olarak iletmek için, fonksiyonun adını bir dize (string) olarak kullanmanız yeterlidir:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Bazı işlemler yap...
$callback($username); // Geri çağırma fonksiyonunu çağır
}
processUser("Alice", "greet"); // Çıktı: Hello, Alice!
?>Bu örnekte, "greet" bir geri çağırma (callback) olarak processUser() fonksiyonuna iletilir. processUser() fonksiyonu daha sonra dizeyi bir fonksiyon adı olarak kullanarak geri çağırmayı çağırır.
Geri çağırma işlevleri (callbacks), fonksiyonlarınızı daha esnek hale getirdikleri için inanılmaz derecede kullanışlıdır. Aynı fonksiyon, ona hangi geri çağırma işlevini geçirdiğinize bağlı olarak farklı eylemler gerçekleştirebilir. Bu kavram, bu kursun ilerleyen kısımlarında karşılaşacağınız array_map() ve array_filter() gibi PHP'nin yerleşik birçok fonksiyonu için temel teşkil eder.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
Kolayİki fonksiyon oluşturun: bir dize alan ve onu büyük harfle döndüren formatUppercase adında bir fonksiyon ve bir dize alan ve onu küçük harfle döndüren formatLowercase adında başka bir fonksiyon.
Ardından, iki parametre kabul eden applyFormat adında bir fonksiyon oluşturun: bir metin dizesi ve bir geri çağırma (callback) fonksiyon adı. Bu fonksiyon, geri çağırmayı metne uygulamalı ve sonucu döndürmelidir.
İki girdi alacaksınız: işlem türü ("upper" veya "lower") ve formatlanacak metin. Her iki girdiyi de okuyun, işlem türüne göre hangi geri çağırmanın kullanılacağını belirleyin, uygun geri çağırma ile applyFormat fonksiyonunu çağırın ve formatlanmış sonucu yazdırın.
Giriş formatı: İki satır - ilk satır işlem türünü ("upper" veya "lower") içerir, ikinci satır formatlanacak metni içerir
Beklenen çıktı: İşlem türüne göre formatlanmış metin
Kopya kağıdı
Geri çağırma (callback) fonksiyonu, başka bir fonksiyona argüman olarak aktarılan bir fonksiyondur. Fonksiyonu hemen çağırmak yerine, alan fonksiyonun gerektiğinde daha sonra çağırabilmesi için adını aktarırsınız.
Bir fonksiyonu geri çağırma fonksiyonu olarak aktarmak için, fonksiyonun adını bir dize (string) olarak kullanın:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Bazı işlemler yap...
$callback($username); // Geri çağırma fonksiyonunu çağır
}
processUser("Alice", "greet"); // Çıktı: Hello, Alice!
?>Geri çağırmalar, hangi geri çağırma fonksiyonunu aktardığınıza bağlı olarak farklı eylemlere izin vererek fonksiyonları daha esnek hale getirir.
Kendin dene
<?php
// Girdiyi oku
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// YAPILACAK: Kodunuzu aşağıya yazın
// formatUppercase fonksiyonunu oluşturun
// formatLowercase fonksiyonunu oluşturun
// applyFormat fonksiyonunu oluşturun
// İşlem türüne göre hangi geri çağırma (callback) fonksiyonunun kullanılacağını belirleyin
// Uygun geri çağırma fonksiyonu ile applyFormat'ı çağırın
// Sonucu yazdırın
echo $result;
?>Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama