Menu
Coddy logo textTech

'call_user_func' Kullanımı

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 5 / 68.

call_user_func() fonksiyonu, PHP'de fonksiyonları dinamik olarak çağırmanın güçlü bir yolunu sunar. Bir fonksiyonu doğrudan adıyla çağırmak yerine, fonksiyon adını bir dize değişkeninde saklayabilir ve onu yürütmek için call_user_func() fonksiyonunu kullanabilirsiniz.

İşte temel sözdizimi:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Çıktı: Hello World!
?>

Bu, kullanıcı girişine veya koşullara bağlı olarak farklı fonksiyonları çağırmanız gerektiğinde özellikle yararlı hale gelir. Ayrıca, fonksiyonlara ek parametreler olarak dahil ederek argümanlar da geçirebilirsiniz:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Çıktı: 8
?>

Bu dinamik fonksiyon çağırma, yürütülecek belirli fonksiyonun çalışma zamanında belirlendiği hesap makineleri, komut işlemcileri veya yönlendirme sistemleri gibi esnek uygulamalar oluştururken özellikle değerlidir.

challenge icon

Görev

Kolay

Üç fonksiyon oluşturun: iki sayı alıp çarpımlarını döndüren multiply, iki sayı alıp farklarını döndüren subtract ve iki sayı alıp bölümlerini döndüren divide.

Üç girdi alacaksınız: işlem adı ("multiply", "subtract" veya "divide") ve iki sayı. Her üç girdiyi de okuyun, iki sayı ile uygun fonksiyonu çalıştırmak için call_user_func() kullanın ve sonucu yazdırın.

Giriş formatı: Üç satır - ilk satır işlem adını içerir, ikinci satır ilk sayıyı içerir, üçüncü satır ikinci sayıyı içerir

Beklenen çıktı: İşlemin sonucu

Kendin dene

<?php
// Girdiyi oku
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// YAPILACAK: Üç fonksiyonu (multiply, subtract, divide) burada oluşturun

// YAPILACAK: Uygun fonksiyonu çalıştırmak için call_user_func() kullanın

// Sonucu yazdır
echo $result;
?>
quiz iconKendini test et

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