PHP 8 YENİLİKLER

PHP 8 YENİLİKLER

PHP 8.0, PHP dili için önemli bir güncellemedir.
Optimizasyonlar ve yeni özellikler: Adlandırılmış Değişkenler, Union Types, Attributes, Kurucularda Özellik Tanımı, Match İfadesi, Nullsafe Operatorü, JIT(Anında Derleme) yanında tip sistemi, hata işleme ve tutarlılıkta iyileştirmeler içerir.

Adlandırılmış Değişkenler
  • Opsiyonel parametreleri atlayabiliyor ve yalnızca zorunlu olanları belirtebiliyorsunuz.
  • Parametrelerin sırası önemli değil ve kendi kendilerini dokümante ediyorlar.
Attributes

PHPDoc yorum satırları yerine PHP sözdizimi ile yapılandırılmış metadata kullanılabiliyor.

Kurucularda Özellik Tanımı

Sınıfların özelliklerini tanımlamak için daha az kodlama yapılabiliyor.

Union types

Değişken türlerinin kombinasyonu için PHPDoc açıklamaları yerine çalışma zamanında doğrulanan birleşim türleri (union types) tanımlamaları kullanılabiliyor.

Match İfadesi

Yeni match ifadesi switch’e çok benzer ve aşağıdaki özelliklere sahiptir:

  • Match bir ifadedir, sonucu bir değişkende saklanabilir veya döndürülebilir.
  • Match’in karşılıkları tek satır ifadeleri destekler ve break; kullanılması gerekmez.
  • Match katı (strict) tip karşılaştırma yapar.
Nullsafe Operatorü

Null koşulları için kontroller yazmak yerine yeni Nullsafe operatörüyle çağrı zinciri oluşturabilirsiniz. Oluşturduğunuz zincirdeki herhangi bir parça hatalı değerlendirilirse tüm zincirin işlevi durur ve null olarak değerlendirilir.

Daha Akıllı String ve Sayı Karşılaştırmaları

Sayısal string karşılaştırılırken PHP 8 sayısal olarak karşılaştırır. Aksi halde sayı bir string’e çevrilir ve string olarak karşılaştırılır.

Dahili İşlevler için Tutarlı Hata Türleri

Artık dahili işlevlere gönderilen parametreler doğrulanamazsa Error exception fırlatıyorlar.

Tip sistemi ve hata işlemede iyileştirmeler

  • Aritmetik/bitsel operatörler için daha katı tip denetimi RFC
  • Soyut özellikli metodlar için doğrulama RFC
  • Sihirli metodlar için doğru işaretlemeler RFC
  • Yeniden sınıflandırılan motor hataları RFC
  • Uyumsuz metod işaretleri için fatal error RFC
  • @ operatörü artık önemli hataları susturmuyor
  • Private methodlarda kalıtımlar RFC
  • Mixed tipi RFC
  • Static return tipi RFC
  • Dahili işlevler için tip açıklamaları E-posta konusu
  • Eklentiler için özkaynak türleri(resources) yerine opak nesneler: Curl, Gd, Sockets, OpenSSL, XMLWriter ve XML.

Diğer PHP sözdizimi düzenlemeleri ve iyileştirmeleri

  • Parametre ve closure listelerinin sonunda virgül kullanılabilmesi RFC RFC
  • Değişken atamasına gerek olmayan hataların yakalanabilmesi RFC
  • Değişken sözdizimlerinde iyileştirmeler RFC
  • İsim alanındaki tanımları tek bir belirteç olarak değerlendirme RFC
  • Throw deyimi artık bir ifade (expression) RFC
  • Nesnelerde ::class kullanılabilmesi RFC

Yeni Sınıflar, Arayüzler ve Fonksiyonlar

  • Weak Map sınıfı
  • Stringable arayüzü
  • str_contains(), str_starts_with(), str_ends_with() fonksiyonları
  • fdiv()
  • get_debug_type()
  • get_resource_id()
  • token_get_all() nesne implementasyonu
  • New DOM Traversal and Manipulation APIs

Özetle: Daha iyi performans, daha iyi sözdizimi, geliştirilmiş tip desteği.

PHP 8’i indirmek için downloads sayfasını ziyaret edebilirsiniz. Windows için derlenmiş sürümüne PHP for Windows sayfasından ulaşabilirsiniz. Değişiklikler için ChangeLog‘a göz atabilirsiniz.