'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.
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Üç 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
Kopya kağıdı
call_user_func() fonksiyonu, fonksiyon adını içeren bir dize değişkeni kullanarak fonksiyonları dinamik olarak çağırmanıza olanak tanır:
<?php
function greet() {
echo "Hello World!";
}
$functionName = "greet";
call_user_func($functionName); // Çıktı: Hello World!
?>Fonksiyona ek parametreler ekleyerek argümanlar iletebilirsiniz:
<?php
function add($a, $b) {
return $a + $b;
}
$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result; // Çıktı: 8
?>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;
?>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