Merhaba değerli okurlarım!
Bu yazımda sizlere geçen sene yayınlanan ve geliştirilmesi halen devam eden php 8 ile gelen yeni özelliklerden bahsedeceğim.
Php 8 ile birlikte performans dail bir çok alanda değişim gözlenmekte olup php kullananlarıda sevindiren, rahatlatan yeni özellikler içermektedir.
Php'nin bu değişimi ile birlikte birçok alışkanlığımızı geride bırakacağız gibi gözüküyor.
Eğer sizlerde henüz php 8'i incelemediyseniz ve merak ediyorsanız bu yazıma gözatabilirsiniz ve bu büyük değişim hakkında bilgi sahibi olabilirsiniz.
Yapıcı Değişkenler (Constructor)
PHP 8.0 ile sınıflarda yapıcı değişkenleri birer birer atamamıza gerek kalmayacak artık. önceki sürümlerde değişkenleri tanımlayıp daha sonra atama yapıyorduk. PHP 8.0 ile yapıcı metotlarda hem tanımlama hemde atama yapılabilecek.
php'nin eski sürümleri ile php 8'de olan özelliğini bir örnekle ifade etmek gerekirse:
php 8'den önceki kullanımı:
class OrnekClass{
public float $a;
public float $b;
public float $c;
public function __construct( float $a = 0.0, float $b = 0.0, float $c = 0.0, ) {
$this->a = $a;
$this->b = $b;
$this->c = $c;
}
}
php 8 kullanımı:
class OrnekClass{
public function __construct( public float $a = 0.0, public float $b = 0.0, public float $c = 0.0, ){
}
}
Çoklu Tür (Union Types)
Çoklu tür özelliği ile değişkene birden fazla tür özelliği ekleyebilme imkanına sahip oluyoruz. Bu özellik olmadan önce aşağıdaki gibi belirlenmekteidi.
örnek:
php 8'den önceki kullanımı:
class OrnekClass{
/** @var int|float */
private $number;
/**
* @param float|int $number
*/
public function __construct($number) {
$this->number = $number;
}
}
php 8 kullanımı:
class OrnekClass{
public function __construct( private int|float $number ) {
}
}
match() Fonksiyonu (Yeni Eşleşme İfadesi)
switch-case yapısına alternatif olarak yapılan diğer değişiklik ise match() fonksiyonudur. Bu match() fonksiyonu ile sonuç bir değişkene atılmaktadır. bu kolaylık gösteren özelliği bir örnek ile ifade edelim.
örnek:
php 8'den önceki kullanımı:
switch (8.0) {
case '8.0':
$sonuc = "Başarısız";
break;
case 8.0:
$sonuc = "Başarılı";
break;
}
echo $sonuc;
php 8 kullanımı:
echo match (8.0) {
'8.0' => "Başarısız",
8.0 => "Başarılı",
};
Nullsafe Operatörü
Nullsafe operatörü ile bir değişkenin var olup olmadığını kontrol etmek için kullanıyoruz. Uzun uzun if else sorgusu yazmaktan bizi Nullsafe operatörü kurtarıyor.
örnek:
php 8'den önceki sürümlerde:
if ($user != null){
$country = $user->getCountry();
}
php 8 kullanımı:
$country = $user?->getCountry();
not:
?-> işaretinden önceki değer boş ise getCountry() fonksiyonu çağırılmadan işlem sonlanacaktır.
Dizilerde negatif değer
PHP 8.0 güncellemesi ile eklenen diğer özellik ise diziler negatif değer ile başlayabilecek artık. biliyorsunuz önceki sürümlerde negatif edeğer ile kullanılmıyordu. bir örnekle farkını görelim.
örnek:
php 8'den önceki sürümlerde:
$array = [-3 => "merhaba", "x", "y", "z"];
print_r($array);
/*
Array
(
[-3] => merhaba
[0] => x
[1] => y
[2] => z
)
*/
php 8 kullanımı:
$array = [-3 => "merhaba", "x", "y", "z"];
print_r($array);
/*
Array
(
[-3] => merhaba
[-2] => x
[-1] => y
[0] => z
)
*/
ilk olarak göze çarpan yenilikler bu şekilde, ancak daha yeni özellikler keşfettikçe sizlere bu yazım üzerinden paylaşacağım.
Soru ve sorunlarınızı iletişim bölümünden ve ya yorum olarak bana ulaştırabilirsiniz.
iyi bloglamalar herkese.

Bir önceki yazımız olan php statik değişken tanımlama başlıklı makalemizde php statik, php statik değişken ve php statik değişken tanımlama hakkında bilgiler verilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

code