• bilgi@underdrew.com
  • Terazidere Mh. Baki Sk. No:34/1 Bayrampaşa / İSTANBUL
PHP 8.0 Yayınlandı. PHP 8.0 İle Gelen Yenilikler Nelerdir?
PHP 8.0 Yayınlandı. PHP 8.0 İle Gelen Yenilikler Nelerdir?
PHP 8.0 Yayınlandı. PHP 8.0 İle Gelen Yenilikler Nelerdir?

PHP 8.0 son yıllarda gelen ön köklü güncelleme olmuşa benziyor. Öyle ki ilk bakışta anlaşılan, diğer yazılım dillerinde bulunan ancak PHP'de bulunmaya birçok özellik ve kolaylık artık PHP için de kullanılabilir hale geliyor. Sizler için PHP 8.0'ın bazı büyük yeniliklerini derledik.

 

İsimlendirilebilir Parametreler (Named Arguments)

Bu özellik gelişine bizim de en çok sevindiklerimizden biri olsa gerek. Artık bir metodun yalnızca istediğimiz parametrelerini belirtip, opsiyonel olanları atlayabiliyoruz. Böylelikle parametreler artık sırdan bağımsız hale geliyor.

PHP 7

ornek_fonksyon($string, 99, array(), true);

PHP 8

ornek_fonksyon($string, dont_encode: true);

 

Yapıcı Değişkenlerin Tanımlanması (Constructor property promotion)

Artık sınıfların yapıcı değişkenlerini yapıcı metodlarda tek tek atamamıza gerek kalmıyor. Yeni özellik olarak yapıcı metodların parametrelerinde yapıcı değişkenleri tanımlayabiliyoruz.

PHP7

class Koordinat {   public float $x;   public float $y;   public float $z;   public function __construct(     float $x = 0.0,     float $y = 0.0,     float $z = 0.0,   ) {     $this->x = $x;     $this->y = $y;     $this->z = $z;   } }

PHP 8

class Koordinat {     public function __construct(         public float $a = 0.0,         public float $b = 0.0,         public float $c = 0.0,     ){} }

 

Birleşim Çeşitleri (Union Types)

Artık veri tipi kombinasyonu içeren bir değişkenin çeşidini öğrenmek için dökümantasyona başvurmak yerine, çalışma zamanında doğrulanabilen yerel veri birleşim türlerini kullanabiliyoruz.

PHP 7

class SayiSinif {     /** @var int|float */     private $number;        /**      * @param float|int $number      */     public function __construct($number) {       $this->number = $number;     }   }      new SayiSinif('NaN');

PHP 8

class SayiSinif  {     public function __construct(       private int|float $number     ) {} }    new SayiSinif('NaN'); // Hata

 

 

Yeni Eşleşme İfadesi (Match Expression)

PHP 8.0 ile birlikte gelen ve yapısal olarak -switch- ifadesine benzeyen yeni bir eşleşme ifadesi ile kısa durum belirlemeleri daha da kolaylaşacağa benziyor. Bu yeni ifade ile eşleşmenin sonucu bir değişkene atanabiliyor yahut döndürülebiliyor. Eşleşme ifadesi yalnızca tek satır ifadeleri destekliyor ve artık -break- beyanına gerek kalmıyor.

 

PHP 7

switch (8.0) {     case '8.0':         $sonuc = "Malesef!";         break;     case 8.0:         $sonuc = "Eşleşme Doğrulandı";         break;     } echo $sonuc; //> Malesef!!

PHP 8

echo match (8.0) {     '8.0' => "Malesef!",     8.0 => "Eşleşme Doğrulandı", }; //> Eşleşme Doğrulandı

 

Nullsafe Operatörü (Nullsafe Operator)

Bize göre, gelen yenilikler arasında en etkili olacaklardan bir tanesi de bu nullsafe operatörü olacaktır. bir verinin var olup olmadığının kontrolünü -if- durumu ile yapmak yerine, artık zincirin halkalarının arasına eklenecek -?- ile değişkeni tek seferde belirtebiliyoruz. Zincirin halkalarından bir tanesinin boş olması durumunda işlemin yürütülmesi durduruluyor.

PHP 7

$ulke =  null; if ($oturum !== null) {   $kullanici = $oturum->kullanici;   if ($kullanici !== null) {     $adres = $kullanici->AdresiAl();       if ($adres !== null) {         $ulke = $adres->ulke;     }   } }

PHP 8

$ulke = $oturum?->kullanici?->AdresiAl()?->ulke;

 

Dahili işlemler İçin Tutarlı Hatalar

Dahili metodların çoğu, parametrelerin doğrulanması başarısız olduğunda artık daha tutarlı hatalar veriyor.

PHP 7

strlen([]);  // Warning: strlen() expects  // parameter 1 to be string,  // array given array_chunk([], -1);  // Warning: array_chunk():  // Size parameter expected  // to be greater than 0

PHP 8

strlen([]);  // TypeError: strlen(): // Argument #1 ($str) must be  // of type string, array given array_chunk([], -1);  // ValueError: array_chunk():  // Argument #2 ($length) must be  // greater than 0

 

ETİKETLER: Php, Version, 8


Web Tasarım hizmetlerimiz hakkında bir uzmanla görüşmek için bizimle 0544 897 48 19 nolu telefonu arayarak iletişime geçin veya TEKLİF ALIN biz sizi arayalım.