Ujian beta PHP 8 telah bermula

Dikemukakan oleh keluaran beta pertama cabang baharu bahasa pengaturcaraan PHP 8. Keluaran dijadualkan pada 26 November. Pada masa yang sama, keluaran pembetulan PHP 7.4.9, 7.3.21 dan
7.2.33, yang menghapuskan ralat dan kelemahan terkumpul.

Utama inovasi PHP 8:

  • Inklusi Penyusun JIT, penggunaannya akan meningkatkan produktiviti.
  • Sokongan argumen fungsi yang dinamakan, membolehkan anda menghantar nilai kepada fungsi yang berkaitan dengan nama, i.e. Anda boleh menghantar hujah dalam sebarang susunan dan menentukan hujah pilihan. Contohnya, "isi_tatasusunan(indeks_mula: 0, nombor: 100, nilai: 50)".
  • Apabila memanggil kaedah dibenarkan menggunakan operator β€œ?”, yang membenarkan anda memulakan panggilan hanya jika kaedah itu ada, yang mengelakkan semakan yang tidak perlu untuk mengembalikan nilai β€œnull”. Contohnya, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Sokongan jenis kesatuan, mentakrifkan koleksi dua atau lebih jenis (contohnya, "fungsi awam foo(Foo|Bar $input): int|float;").
  • Sokongan sifat-sifat (anotasi) yang membolehkan anda mengikat metadata (seperti maklumat jenis) ke kelas tanpa menggunakan sintaks Docblock.
  • Sokongan ekspresi sepadan dengan, yang, tidak seperti suis, boleh mengembalikan nilai, menyokong keadaan gabungan, menggunakan perbandingan jenis yang ketat dan tidak memerlukan spesifikasi "break".

    $hasil = padanan($input) {
    0 => "hello",
    '1', '2', '3' => β€œdunia”,
    };

  • Sintaks dipendekkan definisi kelas, membolehkan anda menggabungkan definisi pembina dan sifat.
  • Jenis pemulangan baharu - statik.
  • Jenis baharu - bercampur, yang boleh digunakan untuk menentukan sama ada fungsi menerima parameter jenis yang berbeza.
  • Ungkapan membuang untuk mengendalikan pengecualian.
  • Peta Lemah untuk mencipta objek yang boleh dikorbankan semasa pengumpulan sampah (contohnya, untuk menyimpan cache yang tidak perlu).
  • Peluang menggunakan ungkapan "::class" untuk objek (sama dengan memanggil get_class()).
  • Peluang takrifan dalam blok tangkapan pengecualian yang tidak terikat kepada pembolehubah.
  • Peluang meninggalkan koma selepas elemen terakhir dalam senarai parameter fungsi.
  • Antara muka baharu Boleh bertali untuk mengenal pasti sebarang jenis rentetan atau data yang boleh ditukar kepada rentetan (yang kaedah __toString() tersedia).
  • Ciri baru str_contains(), analog strpos yang dipermudahkan untuk menentukan kejadian subrentetan, serta fungsi str_starts_with() dan str_ends_with() untuk menyemak padanan pada permulaan dan penghujung rentetan.
  • Fungsi tambahan fdiv(), yang melakukan operasi bahagi tanpa membuang ralat apabila membahagi dengan sifar.
  • Berubah logik penyambung rentetan. Sebagai contoh, ungkapan 'gema "jumlah:" . $a + $b' sebelum ini ditafsirkan sebagai 'echo ("sum: " . $a) + $b', dan dalam PHP 8 akan dianggap sebagai 'echo "sum: " . ($a + $b)'.
  • Diketatkan menyemak operasi aritmetik dan bit, sebagai contoh, ungkapan "[] ​​% [42]" dan "$object + 4" akan mengakibatkan ralat.
  • Dilaksanakan algoritma pengisihan yang stabil di mana susunan nilai yang sama dikekalkan merentasi larian yang berbeza.
  • Sumber: opennet.ru

Tambah komen