Özet: Fonksiyon Karması
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 9 / 68.
Görev
KolayÖğrendiğiniz birden fazla fonksiyon kavramını birleştiren bir metin işleme sistemi oluşturun. Metin verilerini işlemek için birkaç fonksiyon uygulamanız ve bunları birlikte kullanmanız gerekecek.
İlk olarak, bir dize alan ve onu ters çevrilmiş olarak döndüren, $reverseText adlı bir değişkende saklanan anonim bir fonksiyon oluşturun.
Ardından, bir dize alan ve içindeki sesli harflerin (a, e, i, o, u - büyük/küçük harf duyarsız) sayısını döndüren countVowels adlı normal bir fonksiyon oluşturun.
Daha sonra, üç parametre kabul eden processText adlı bir fonksiyon oluşturun: bir metin dizesi, bir işlem adı ve bir geri çağırma (callback) fonksiyonu. Bu fonksiyon şunları yapmalıdır:
- Eğer işlem
"reverse"ise, metni tersine çevirmek için geri çağırma fonksiyonunu uygulayın ve sonucu döndürün - Eğer işlem
"vowels"ise, sesli harfleri saymak için geri çağırma fonksiyonunu uygulayın ve sayıyı döndürün - Eğer işlem
"length"ise, metnin uzunluğunu döndürün
İki girdi alacaksınız: işlem adı ("reverse", "vowels" veya "length") ve işlenecek metin. Her iki girdiyi de okuyun, işleme göre hangi fonksiyonun kullanılacağını belirleyin, processText fonksiyonunu uygun parametrelerle çağırın ve sonucu yazdırın.
Giriş formatı: İki satır - ilk satır işlem adını içerir, ikinci satır işlenecek metni içerir
Beklenen çıktı: İşleme dayalı sonuç - "reverse" için ters çevrilmiş metin, "vowels" için sesli harf sayısı veya "length" için metin uzunluğu
Kendin dene
<?php
// Girdiyi oku
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// YAPILACAK: Kodunuzu aşağıya yazın
// $reverseText anonim fonksiyonunu oluşturun
// countVowels fonksiyonunu oluşturun
// processText fonksiyonunu oluşturun
// İşleme bağlı olarak uygun parametrelerle processText fonksiyonunu çağırın
// Sonucu yazdırın
echo $result;
?>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