Değişken Fonksiyonlar
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 6 / 68.
Değişken işlevler, PHP’de işlevleri dinamik olarak çağırmak için başka bir yol sunar. call_user_func() kullanmak yerine, işlev adını içeren bir değişkeni işlevin kendisiymiş gibi ele alarak işlevi doğrudan çağırabilirsin.
Sözdizimi basittir: Bir fonksiyon adı içeren bir değişkenin varsa, değişkene parantez ekleyerek o fonksiyonu çağırabilirsin:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Çıktı: Hello World!
?>Bu, parametre kabul eden fonksiyonlarda da işe yarar. Argümanları parantezlerin içine geçirmeniz yeterlidir:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Çıktı: Hello, Alice!
?>Değişken fonksiyonlar, kodu dinamik olarak yürütmek için temiz ve sezgisel bir yol sunar. Bu özellik, koşullara veya kullanıcı girdilerine göre farklı fonksiyonları çağırmanız gerektiğinde özellikle kullanışlıdır ve kodunuzu daha esnek ve uyarlanabilir hâle getirir.
Görev
KolayÜç işlev oluştur: İki sayı (uzunluk ve genişlik) alan ve çarpımlarını döndüren calculateArea, iki sayı alan ve toplamlarının iki katını döndüren calculatePerimeter ve iki sayı alan ve karelerinin toplamının karekökünü döndüren calculateDiagonal.
Üç girdi alacaksın: işlem adı ("area", "perimeter" veya "diagonal"), uzunluk ve genişlik. Üç girdinin tamamını oku, işlev adını bir değişkende sakla ve iki ölçüyü kullanarak değişken işlev sözdizimiyle bu işlevi çağır. Döndürdüğü değeri $result içinde sakla: kodunun altındaki satır bu değeri yazdırır.
Girdi biçimi: Üç satır - ilk satır işlem adını, ikinci satır uzunluğu (ondalık içerebilen bir sayı), üçüncü satır genişliği (ondalık içerebilen bir sayı) içerir
Beklenen çıktı: Hesaplama sonucu
Kendin dene
<?php
// Girdileri oku
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Üç fonksiyonu burada oluştur (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Değişken fonksiyon sözdizimini kullanarak uygun fonksiyonu çağır ve sonucu $result değişkeninde sakla
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ıralamaKendi başına pratik yap: Online PHP derleyicisi