Array vs Object (Dizilere Karşı Nesneler)
PHP ile kod geliştirenlerin nesneleri veri tutmak amaçlı kullanma alışkanlığı olduğunu sanmıyorum. PHP zengin kullanım şekilleri olan bir dil olduğundan kimisi nesne tabanlı, kimisi fonksiyonlar aracılığı ile kod yazarken kimisi de fonksiyon dahi kullanmadan tamamen düz metin gibi yazıyor :) Hepsini bir kenara atalım. Fonksiyonlar metodlar vs. vs. değil de biz bu nesneleri neden C dilindeki struct gibi bilgi tutmak amaçlı kullanmayalım ki?
Sınıfımızı ilk sayfada vermiştik ama sınıfımızı hatta bir de boyut fonksiyonumuzu tekrar yazıp hatırlayalım.
Şimdi ilk örneğimizi nesne ile yapmaya başlayalım.
$seyranli= new iletiler; $seyranli->isim='Gündüz Can YILMAZ'; $paradox= new iletiler; $paradox->isim='Gündüz Can YILMAZ'; $agakin= new iletiler; $agakin->isim='Gündüz Can YILMAZ'; $cagonni= new iletiler; $cagonni->isim='Gündüz Can YILMAZ';
olan kodumuzun çıktısı şu şekilde
seyranli nesne boyutu: 400.8828125 KB murat nesne boyutu: 400.796875 KB agakin nesne boyutu: 400.796875 KB cagonni nesne boyutu: 400.796875 KB Kullanılan en yüksek alan: 3.4493179321289 MB
Gördüğünüz gibi nesne ya da dizi bu örnek için pek bişey farketmedi. Tüm değerler birbirine çok yakın. Çalışma süreleri dahi hemen hemen aynı. Bu örnek de 0.907 saniye ile 1.34 saniyeler arasında değerlerde çalıştı sayfa yenilemelerimde.
Hemen ikinci örneğime geçiyorum, bu örnekte nesne içindeki değişkenlere $masallah değişkeni atayacağız.
$seyranli= new iletiler; $seyranli->isim='Gündüz Can YILMAZ'; $seyranli->ileti=$masallah; $paradox= new iletiler; $paradox->isim='Gündüz Can YILMAZ'; $paradox->ileti=$masallah; $agakin= new iletiler; $agakin->isim='Gündüz Can YILMAZ'; $agakin->ileti=$masallah; $cagonni= new iletiler; $cagonni->isim='Gündüz Can YILMAZ'; $cagonni->ileti=$masallah;
Bu program 0.0398 saniyerde çalışırken çıktısı ise aşağıdaki şekilde oluyor
maşallah string boyutu: 400.578125 KB seyranli nesne boyutu: 368 byte murat nesne boyutu: 368 byte agakin nesne boyutu: 368 byte cagonni nesne boyutu: 368 byte Kullanılan en yüksek alan: 2.2750778198242 MB
Gördüğünüz gibi burada da değişen çok fazla şey yok. Malesef taraf tutanların pek kazandığı söylenemez. Nesneler şu örnekler açısından bakıldığında dizilere karşı çok avantajlı olmasa da, aynı şekilde kodlamaktan sıkılanlar için, hep aynı şeylerle kendini geliştiremeyeceğini düşünenler için, artık bi ucundan tutup ben de nesne tabanlı programlamaya başlayım diyenler için pratik olabilir. Zaten amacım birinden birini seçtirmek değil farklı yollar gösterebilmekti.
İyi kodlamalar ;)