PHP 7.4 ile gelen yenilikler

PHP 7.4 ile gelen yenilikler

Öncelikle basit ve çok kullanılabilecek bir özelliklerinden başlayıp, daha zor ve ileri seviye kullanım olanlara doğru gideceğim.

1) Yeni diziye eleman ekleme operatörü : Dizi Açma Operatörü ( Spread Operator )

Dizi Açma Operatörü ismini seçmemin nedeni, aslında yapılan şeyin tam olarak diziyi değişkenden çıkarıp yerine koyması.

Örneğin;

// şeklinde bir dizimiz olsun
$arr = [ 'b', 'c' ];

// yeni dizimizin içinde, yeni operatörümüzle kullanıyoruz ve
$yeni_dizi = [ 'a', ...$arr, 'd', 'e' ];

çıktı olarak a, b, c, d, e sonucunu alacağız. Ne array_merge ne de + operatörüne ihtiyaç duymadan 7.4 sürümünden itibaren bu işlemi kolayca ve daha okunaklı olarak yapabileceğiz.

ama maalesef şimdilik & operatörü ile birlikte kullanamıyoruz. Yani …&$arr olarak kullanmamız şimdilik mümkün değil.

2) Yeni Null değer operatörü

PHP ile null tanımlaması çoğu zaman sıkıntılı bir durum oluyor. Bu özellik ile birlikte biraz daha okunaklı ve kolay olacak.

// PHP 7 öncesi
$deger = isset( $dizi[ 'isim' ] ) ? $dizi[ 'isim' ] : 'isimsiz';

// PHP 7 sonrası
$deger = $dizi[ 'isim' ] ?? 'isimsiz';

// PHP 7.4 sonrası
$dizi[ 'isim' ] ??= 'isimsiz';
// Eğer değer değişkenine atamak gerekirse
$deger = $dizi[ 'isim' ];

 Burada eğer dizi dizisinin içerisinde isim anahtarlı değişkenimiz tanımlı değilse ‘isimsiz’ değerini alarak bizi tanımlanmamış değerden kurtarıyor. Ayrıca karmaşıklaştırmadan başka bir değişken kullanma ihtiyacımız azalıyor. Tabi ki bazı durumlarda, yukarıdaki örneklerde olduğu gibi değer değişkeninin olması daha da kullanışlı olabilir. Bu durumlar için php 7 sonrası gelen ?? işleci daha faydalı olabilir.

3) Yeni Dizi İşlemleri ( Short Closures )

PHP’de closure function tanımlamaları zaten daha önceki versiyonlardan aşinayız. Şimdi dizi içerisinde de bu işlemi gerçekleştirebileceğiz.

$katsayi = 2;
$arr1 = [ 1, 2, 3, 4, 5 ];
$arr2 = array_map( fn( $degisken ) => 'sonuç = ' . ( $degisken * $katsayi ), $arr1 );

 Yukarıda gördüğünüz örnekteki gibi artık dizi içerisinde anonim fonksiyon benzeri bir yapıyı kullanabileceğiz. Üstelik gördüğünüz gibi tanımlanmış diğer değişkenlerin değerlerini de use tanımlaması olmadan kullanabiliyor.

4) Zayıf Referans – WeakReference

Bir class oluşturduğunuzda bunu unset ile boş hale getirebiliyorsunuz. Çok fazla kullanımı olmasa da bazı durumlarda ileri kullanım için işe yarayabilecek bir sınıf. Bu sınıf içerisinde create ve get methodları bulunmakta. Aşağıda php.net sitesinden aldığım örnek kod bulunmakta.

$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());

Bunlar haricinde operatörler ve iteratörler ile ilgili değişiklikler var. Hatta OPCache preloading konusunda da bir iyileştirme olmuş. Zaman buldukça bu özellikler ile ilgili ayrı bir makale yazmayı planlıyorum.

Makale yazmaktan bir kazancım olmadığı için çok fazla zaman ayıramıyorum ama yine de zaman buldukça ve elimden geldiğince yazmaya devam edeceğim. Umarım faydalı olumuştur. Bir sonraki makalemde görüşmek dileğiyle..

Kaynak : php.net

Bu makaleyi değerlendir!
[Toplam: 0 Ortalama: 0]

Bir cevap yazın