PHP 8'in beta testi başladı

tanıtıldı PHP 8 programlama dilinin yeni dalının ilk beta sürümü. Sürümün 26 Kasım'da yayınlanması planlanıyor. Aynı zamanda PHP 7.4.9, 7.3.21 ve XNUMX'in düzeltici sürümleri de
7.2.33, birikmiş hataları ve güvenlik açıklarını ortadan kaldırdı.

Ana yenilikler PHP8:

  • içerme JIT derleyicisikullanımı üretkenliği artıracaktır.
  • Destek adlandırılmış işlev argümanları, adlarla ilgili olarak işleve değerler aktarmanıza olanak tanır, ör. Bağımsız değişkenleri istediğiniz sırayla iletebilir ve isteğe bağlı bağımsız değişkenleri tanımlayabilirsiniz. Örneğin, "array_fill(start_index: 0, sayı: 100, değer: 50)".
  • Yöntemleri çağırırken izin "?" operatörünü kullanarak, yalnızca yöntem mevcutsa bir çağrı başlatmanıza olanak tanır, bu da "null" değerini döndürmek için gereksiz kontrolleri önler. Örneğin, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Destek birlik türleri, iki veya daha fazla türden koleksiyonları tanımlamak (örneğin, "public function foo(Foo|Bar $input): int|float;").
  • Destek Öznitellikler (ek açıklamalar), Docblock sözdizimini kullanmadan meta verileri (tür bilgileri gibi) sınıflara bağlamanıza olanak tanır.
  • İfade desteği maçSwitch'ten farklı olarak değerleri döndürebilen, birleştirme koşullarını destekleyen, katı tür karşılaştırmaları kullanan ve "break" belirtimi gerektirmeyen.

    $sonuç = eşleşme($giriş) {
    0 => "merhaba",
    '1', '2', '3' => “dünya”,
    };

  • Kısaltılmış sözdizimi sınıf tanımları, bir yapıcının tanımını ve özelliklerini birleştirmenize olanak tanır.
  • Yeni dönüş türü - statik.
  • Yeni tip - karışıkBir işlevin farklı türdeki parametreleri kabul edip etmediğini belirlemek için kullanılabilir.
  • ifade atmak istisnaları ele almak için.
  • Zayıf Harita çöp toplama sırasında feda edilebilecek nesneler oluşturmak (örneğin, gereksiz önbellekleri depolamak için).
  • Fırsat nesneler için “::class” ifadesini kullanma (get_class() işlevini çağırmaya benzer).
  • Fırsat değişkenlere bağlı olmayan istisnaların catch bloğundaki tanımlar.
  • Fırsat işlev parametreleri listesindeki son öğeden sonra virgül bırakılır.
  • Yeni интерфейс dizilebilir dizeye dönüştürülebilecek herhangi bir dize türünü veya veriyi tanımlamak için (bunun için __toString() yöntemi kullanılabilir).
  • Yeni özellik str_contains(), bir alt dizenin oluşumunu belirlemek için strpos'un basitleştirilmiş bir analoğu ve ayrıca bir dizenin başındaki ve sonundaki eşleşmeleri kontrol etmek için str_starts_with() ve str_ends_with() işlevleri.
  • Eklenen işlev fdiv()Sıfıra bölme işleminde hata vermeden bölme işlemini gerçekleştiren.
  • Değiştirildi dize birleştirme mantığı. Örneğin, 'echo "sum:" ifadesi. $a + $b' daha önce 'echo ("sum: " . $a) + $b' olarak yorumlanıyordu ve PHP 8'de 'echo "sum: " olarak ele alınacak. ($a + $b)'.
  • Sıkılmış aritmetik ve bit işlemlerini kontrol etmek, örneğin "[] ​​% [42]" ve "$object + 4" ifadeleri hatayla sonuçlanacaktır.
  • uygulandı Farklı çalışmalarda aynı değerlerin sırasının korunduğu kararlı bir sıralama algoritması.
  • Kaynak: opennet.ru

Yorum ekle