Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan PHP programlama dili eğitim içeriğidir. Eğitmen, programlama konularını adım adım anlatmaktadır.
- Video, PHP'de fonksiyonların kullanımı, referans alma ve düzenli ifadeler (regex) konularını kapsamlı şekilde ele almaktadır. İçerik, XO oyunu problemi üzerinden başlayıp, ardışık tek sayıların piramidi oluşturma, telefon numaralarını formatlama ve metin fonksiyonlarının oluşturulması gibi çeşitli örnekler üzerinden ilerlemektedir. Her problem için farklı çözüm yöntemleri (string fonksiyonları, array fonksiyonları, regex, referans alma, closure fonksiyonları) gösterilmekte ve karşılaştırılmaktadır.
- Videoda ayrıca matematiksel fonksiyonların (pow, exponentiation) kullanımı, printf ve sprintf fonksiyonları arasındaki farklar, gruplama, tam sayı eşleştirme ve string formatlama işlemleri gibi konular da detaylı olarak anlatılmaktadır. Eğitmen, programlama ve matematik arasındaki ilişkiyi vurgulayarak, özellikle oyun yazmak isteyenler için matematik ve geometri bilgisinin önemini belirtmektedir.
- PHP Battle Tanıtımı
- CSS Battle videosundan esinlenerek PHP versiyonunu çekmek isteniyor.
- Örnekler codewars.com adresinden alınmış ve bu videoda beş farklı PHP örneği incelenecek.
- PHP'de bir şeyi yapmanın farklı yollarını göstermek ve farklı düşünme becerilerini geliştirmek amaçlanıyor.
- 01:22XO Fonksiyonu Örneği
- İlk örnek XO adında bir fonksiyon olup, bir değer alıyor ve x'ler ve o'lar eşitse true, x ve o yoksa true, diğer durumlarda false döndürüyor.
- Fonksiyonu çözmek için string fonksiyonları kullanılarak önce tüm karakterler küçük harfe dönüştürülüyor.
- Str split fonksiyonu ile karakterler diziye parçalanıyor ve foreach döngüsü ile x ve o'ların sayıları kontrol ediliyor.
- 05:31Alternatif Çözümler
- Array count values fonksiyonu kullanılarak x ve o'ların sayıları daha basit bir şekilde sayılabilir.
- Regex bilgisi varsa fragmatch fonksiyonu ile düzenli ifadeler kullanılarak çözüm bulunabilir.
- String fonksiyonlarına hakim olmak için substr count fonksiyonu da kullanılabilir.
- 09:53Öğrenme Yaklaşımı
- Farklı çözümler bulabilmek için string veya array fonksiyonlarına hakim olmak gerekiyor.
- Regex bilgisi varsa alternatif çözümler aranabilir.
- Hiçbir şey bilinmiyorsa, karakterleri ayırıp döngüye sokarak kontrol etmek de bir çözüm olabilir.
- 10:40Ardışık Tek Sayıların Piramidi Problemi
- Ardışık tek sayıların piramidi probleminde, verilen satır numarasına göre ardışık tek sayıların toplamı hesaplanıyor.
- İki girdiğimizde 3+5=8, üç girdiğimizde 3+5+7=27, dört girdiğimizde 3+5+7+9=64 sonucu elde ediliyor.
- Bu problem matematik bilgisi gerektiriyor ve JavaScript ile oyun yazmak isteyenlerin matematik, geometri ve fizik bilgisinin olması gerektiğini gösteriyor.
- 11:47Üs Alma İşlemleri
- Ardışık tek sayıların piramidi probleminde n sayısının karesi alınarak sonuç elde ediliyor (n×n×n).
- PHP'de üs alma işlemi için pow fonksiyonu kullanılabilir veya alternatif olarak exponentiation operatörü (^) kullanılabilir.
- Problemin çözümü için önce problemi anlamak, sonra çözüm bulmak ve farklı yöntemlerle uygulamak gerekiyor.
- 13:49Komutlarla Dizi Oluşturma
- Fonksiyona id, s, d ve o komutları verilerek bir dizi olarak 8 ve 64 değerleri döndürülmesi isteniyor.
- id komutu sayıyı bir artırıyor, s komutu sayının karesini alıyor, d komutu sayıyı bir azaltıyor, o komutu sonucu diziye ekliyor.
- Komutlar str_split ile ayrıştırılıp, foreach döngüsü ile her komut için ayrı işlemler yapılıyor.
- 17:08Referans Alma ve Closure Fonksiyonları
- Referans alma konusunu öğrenmek için farklı bir varyasyon sunuluyor.
- Her komut için ayrı fonksiyonlar oluşturuluyor ve use ile dışarıdaki değişkene erişim sağlanıyor.
- Fonksiyonlara ampersand işareti konularak referans olarak alınarak, fonksiyonların çalıştırılması sırasında dışarıdaki değişkenlerin de etkilenmesi sağlanıyor.
- 20:12PHP'de Fonksiyonlarda Referans Kullanımı
- For each döngüsü ile yorumlar kontrol ediliyor ve functions'ların içerisindeki yorumlar çalıştırılıyor.
- Referans kullanılarak counter değişkeni her fonksiyon çağrıldığında artıyor ve sonuç olarak 8 ve 64 değerleri elde ediliyor.
- Referans kullanılmazsa, counter değişkeni sadece o fonksiyonun scope'unda kalır ve diğer fonksiyonlarda etkili olmaz.
- 22:49Telefon Numarası Formatlama
- Bir dizi elemanından formatlanmış telefon numarası elde etmek için farklı yöntemler kullanılabilir.
- En basit yöntem, dizi elemanlarını manuel olarak birleştirerek formatlamaktır.
- Döngü kullanarak her elemanı kontrol edip formatlamak da mümkündür.
- 26:09Referanslı Formatlama
- Referans alarak fonksiyon içinde değişkene doğrudan erişim sağlanabilir.
- Referanslı formatlama ile her eleman için uygun formatlama yapılabilir.
- Referanslı yöntemde, önceki elemanın sonuna yeni eleman eklenir.
- 27:54String Fonksiyonları ile Formatlama
- Substr fonksiyonu kullanılarak belirli aralıklardan karakterler alınabilir.
- Implode fonksiyonu ile dizi elemanları düz bir string haline getirilebilir.
- Substr fonksiyonu ile alınan karakterler birleştirilerek istenen format elde edilebilir.
- 29:54Array Slice ve Regex Kullanımı
- Array slice fonksiyonu kullanılarak belirli aralıklardan elemanlar alınabilir.
- Array slice ile alınan elemanlar birleştirilerek istenen format elde edilebilir.
- Regex (düzenli ifadeler) kullanılarak da telefon numarası formatlama yapılabilir.
- 32:54Regex ile Gruplama ve Değer Alma
- Frag replace kullanılarak desen oluşturulup, bilinmeyen değerler gruplanıyor.
- Parantez işaretleri kullanılarak gruplama yapılıyor ve süslü parantezler ile eşleşen değerler belirleniyor.
- Dolar işaretleri kullanılarak gruplanan değerler (dolar bir, dolar iki, dolar üç) alınıyor ve implot ile görüntüleniyor.
- 35:44printf Kullanımı
- printf fonksiyonu, belirtilen formatta değerleri ekrana yazdırıyor.
- %s formatı string değerleri, %d formatı tam sayıları temsil ediyor.
- printf'in sıkıntısı return ettirmemesi, ancak asprintf ile return edilebilir değer elde edilebiliyor.
- 38:08Array Kullanımı
- Speed operatörü kullanmak istemeyenler için array kullanarak esprint f fonksiyonu kullanılabilir.
- Array kullanarak ekstra speed pad'i kullanmadan da başarılı bir şekilde formatlama yapılabilir.
- 38:48Metin Ters Çevirme Fonksiyonu
- Fonksiyona metin ifade gönderildiğinde, her kelimenin karakter sayısı beş veya üzerini geçiyorsa yazıyı tersine çevirmek isteniyor.
- Normalde string ifadeleri tersine çevirmek için str reverse fonksiyonu kullanılabilir, ancak bu örnekte sadece beş karakterden uzun kelimelerin tersine çevrilmesi gerekiyor.
- Kelimeleri kontrol etmek için önce boşluklardan bölerek bir diziye aktarmak gerekiyor.
- 40:03Dizi ve Döngü Kullanımı
- "world" adında bir dizi oluşturulup, explode fonksiyonu ile metin boşluklardan bölünüyor.
- Foreach döngüsü ile her kelime kontrol ediliyor ve karakter sayısı beş veya üzeri ise word değişkeni str reverse ile eşitleniyor.
- Sonuç olarak, karakter sayısı beş veya üzeri olan kelimeler tersine çevriliyor, diğerleri normal kalıyor.
- 41:06Referans Kullanımı
- Referans alarak aynı işlemi yapabiliriz, bu durumda ekstra bir değişken oluşturmaya gerek kalmıyor.
- Referans operatörü kullanılarak, karakter sayısı beş veya üzeri olan kelimeler ters çevriliyor.
- Array fonksiyonları ile de aynı işlem yapılabilir, bunun için array map veya array walk kullanılabilir.
- 42:00Array Map ve Array Walk Kullanımı
- Array map ile işlem yaparken, close fonksiyon yazıp array'i ikinci parametre olarak atıyoruz.
- Array walk ile işlem yaparken, referans alarak her kelimeyi ters çeviriyoruz.
- Array walk'ta referans almadan işlem yapılırsa, herhangi bir etki olmuyor çünkü referans ile alınan değişken otomatik olarak güncelleniyor.
- 44:43Regex Kullanımı
- Regex düzenli ifadeler, bu tür problemleri çözmek için hayatımızı kurtaran bir araç.
- Regex ile en az beş karakterli kelimeleri arayabiliriz.
- Progreplace callback'i kullanarak, eşleşen kelimeleri ters çevirebiliriz.
- 47:29Dersin Sonu
- Bu örnekte birden fazla şekilde problem çözülmüş ve beş örnek başarıyla tamamlanmış.
- Konseptin devamının gelmesini isteyenlerin yorumlarda belirtmesi isteniyor.