PHP 5.4 ile gelen yeni özellikler
PHP 5.4 versiyonunda gelecek olanlara baktığımda beni en çok sevindiren, Java veya Python dillerinde olan bir çok kolay dizin ve sınıf tanımlama işlemlerinini artık PHP’de de olacak olması. Çünkü diğer dillerde hep bu yüzden iç geçirirdim, bunlar neden PHP’de yok diye, neyseki sonunda geliyor.
Ben genel olarak gelecek olan yeniliklerden syntax konusunda ilgimi çekenleri örnekleriyle göstermek istiyorum. Eğer istersen şuradan tüm yapılan değişikliklere bakabilirsin.
Sınıfları oluşturuldukları anda kullanabilme
Normalde bir sınıfı kullanabilmemiz için onu önce bir değişkene yüklememiz gerekir. Fakat yeni sürüm ile birlikte artık bir değişkene yüklemeden de oluşturup kullanmaya başlayabiliriz.
class kedi { function function isim($isim) { $this->isim = $isim; } function miyav() { echo $this->isim . ': Miyaav!'; } } (new kedi())->isim('Tekir')->miyav();
Sınıfı herhangi bir değişkene yüklemeden tek satırda oluşturup, metodlara ulaşıp çalıştırmış olduk.
Array tanımlama kısayolu
Python ya da Java bilenlerin PHP’de bu neden yok dediği olaylardan bir tanesi; bir dizi tanımlarken bunu array fonksiyonu ile yapmak yerine direkt köşeli parantez içine yazarak yapmak.
$meyveler = ['elma', 'armut', 'kiraz']; // anahtarları ile birlikte $uye = ['no' => 1, 'isim' => 'Musa', 'il' => 'İstanbul'];
Çok farkı olmasa da kullanışlı.
Array üzerinden bir sınıftaki metodu çağırma
Diğer örneklerin yanında bu biraz garip gelebilir, fakat bir sınıfın içindeki metodlara toptan ve sırayla çalıştırılmak istenildiğinde kullanılabilir.
class Deneme { function yazdir($metin) { echo $metin; } } $f = array('Deneme', 'yazdir'); $f('Selam Dünya');
“f” değişkenine “Deneme” sınıfının “yazdir” metodunu ifade edip fonksiyon gibi çalıştırdığımızda bize o metodu çalıştırmış olacak.
Array dönen fonksiyonlarda elemana direkt ulaşma
Bir fonksiyon array döndüğünde içerisinden bir elemana ulaşmak istediğimizde işlemden sonra tekrar değişken üzerinden okumamız gerekir. Fakat yeni sürümde fonksiyondan hemen sonra döndürülen arrayın bir elemanına ulaşabiliyoruz. Bu da benim favorilerimden.
function uye() { return ['isim' => 'Musa', 'soyisim' => 'Avcı']; } echo uye()['isim'];
Bunu yöntemi Python’da denedikten sonra çoğu kez PHP’de de yapmak istemişimdir.
Daha esnek metod çağırmak
Bir değişkene metodun adını yükleyip daha sonra sınıf üzerinden bu değişken adındaki metodu çağırabiliyoruz. Buna bir yöntem daha eklenmiş, şimdi bu iş için değişkene yüklememize de gerek kalmamış.
$isim = 'metod'; $deneme->metod(); // normalde $deneme->$isim(); // değişken ile $deneme->{'metod'}(); // değişkene ihtiyaç duymadan
Benim bu gösterdiklerim aslında sadece syntax ile alakalı yenilikleden bir kaçıydı. Bunların dışında onlarca hata giderilmiş ve onlarca geliştirilme yapılmış, tıpkı her yeni versiyonda yaptıkları gibi.
Bu ekleme ve geliştirmelerin yanı sıra ayrıca sonunda “safe_mod” kaldırılmış.
İlgimi çeken başka yenilikler bulursam yine bu yazı altında güncelleyerek paylaşmaya devam edebilirim…
Bir başka PHP serüveninde görüşmek üzere hoşçakalın!
Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.
PHP artık Javascript, Phyton vs. farklı dillerdeki güzel yönleri bünyesine kazandırmaya başladı ve bu durum çok iyi bence. Bu yeniliklerle birlikte PHP çok daha iyi bir dil haline gelecek diye düşünüyorum. Yeter ki hosting firmaları bu değişime hızlı uyum sağlayabilsin.
değişkenlerin başında dolar işaret ($) kullanma zorunluluğu.
GET yöntemiyle gelen verinin otomatik decode edilmesi.
bu ikisini düzelmesi gerekiyor.
“Sınıfları oluşturuldukları anda kullanabilme” başlığındaki güncelleme çok yerinde olmuş.
class Deneme {
function yazdir($metin) {
echo $metin;
}
}
$f = array(‘Deneme’, ‘yazdir’);
$f(‘Selam Dünya’);
ilginç olmuş bu