kaptanmikro1 1
kaptanmikro1
romegames 1
romegames
Best Studio 1
Best Studio
Reklam vermek için turkmmo@gmail.com

PHP 8 Dil Özellikleri

PHP 8, Kasım 2020’de yayımlandı ve performans, sözdizimi (syntax) ile dil tutarlılığında büyük iyileştirmeler getirdi.

Bu bölümde PHP 8’in en önemli yenilikleri ve geliştirmeleri yer almaktadır.
​

1. JIT (Just-In-Time) Derleme​

Nedir:

JIT derleyicisi, PHP kodunun bazı kısımlarını çalışma anında makine koduna çevirerek performansı artırır.

Önemli noktalar:

CPU yoğun işlemleri (örneğin görüntü işleme, matematiksel hesaplamalar) hızlandırır.
Normal web isteklerinde fark genellikle azdır.
opcache.jit ve opcache.jit_buffer_size ayarlarıyla kontrol edilir.

Örnek:

Kod:
; php.ini
opcache.enable=1
opcache.jit=1235
opcache.jit_buffer_size=100M

2. Birleşik Tipler (Union Types)​

Nedir:
Bir parametrenin veya dönüş değerinin birden fazla türü kabul etmesini sağlar.

Örnek:

Kod:
function hesapla(int|float $deger): int|float {
    return $deger * 1.5;
}

PHP 8 öncesi:

Bu kontrolleri manuel olarak yapmak gerekiyordu.
​

3. İsimlendirilmiş Argümanlar (Named Arguments)​

Nedir:
Fonksiyonlara parametreleri konumla değil, isimle göndermeyi sağlar.

Örnek:

Kod:
function kullaniciOlustur(string $isim, int $yas, string $rol = 'user') {
    // ...
}

kullaniciOlustur(isim: 'Ahmet', yas: 25);
kullaniciOlustur(yas: 40, isim: 'Mehmet', rol: 'admin');


Avantajları:

Kod daha okunaklı olur.
Argüman sırası önemli değildir.
Opsiyonel parametrelerle çok uyumludur.
​

​

4. Öznitelikler (Attributes / Annotations)​

Nedir:

Sınıflara, metodlara veya özelliklere meta veri (ek bilgi) eklemek için PHP’nin yerleşik sözdizimi.

Örnek:

Kod:
#[Route('/users', methods: ['GET'])]
class UserController {
    // ...
}


PHP 8 öncesi:
Bu bilgiler PHPDoc yorumları veya harici kütüphanelerle eklenirdi.
​

5. Yapıcıda Özellik Tanımlama (Constructor Property Promotion)​

Nedir:

Sınıf özelliklerini doğrudan yapıcı (constructor) parametrelerinde tanımlayıp atamayı sağlar.

Örnek:

Kod:
class Kullanici {
    public function __construct(
        private string $isim,
        private int $yas
    ) {}
}

$k = new Kullanici('Ali', 30);
 

En Çok Reaksiyon Alan Mesajlar

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst