Pengujian alpha PHP 8.2 wis diwiwiti

Rilis alpha pisanan saka cabang anyar saka basa pemrograman PHP 8.2 wis diwenehi. Rilis kasebut dijadwalake tanggal 24 November. Inovasi utama wis kasedhiya kanggo nyoba utawa direncanakake kanggo implementasine ing PHP 8.2:

  • Added jinis kapisah "palsu" lan "null", kang bisa digunakake, contone, kanggo fungsi bali flag mandap kesalahan utawa Nilai kosong. Sadurunge, "palsu" lan "null" mung bisa digunakake bebarengan karo jinis liyane (contone, "string | palsu"), nanging saiki padha bisa digunakake kanthi kapisah: fungsi alwaysFalse (): palsu {bali palsu; }
  • Nambahake kemampuan kanggo menehi tandha kelas minangka mung diwaca. Properti ing kelas kasebut bisa disetel mung sapisan, sawise iku ora bisa diganti. Sadurunge, properti kelas individu bisa ditandhani mung diwaca, nanging saiki sampeyan bisa ngaktifake mode iki kanggo kabeh properti kelas bebarengan. Nemtokake gendera "mung diwaca" ing tingkat kelas uga ngalangi properti saka ditambahake kanthi dinamis menyang kelas. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'salah'; // Error: Ora bisa nggawe dinamis property Post::$unknown
  • Kemampuan kanggo nggawe properti kanthi dinamis ing kelas (kaya "post->unknown" ing conto ing ndhuwur) wis ora digunakake. Ing PHP 9.0, ngakses properti sing ora ditemtokake ing kelas kasebut bakal nyebabake kesalahan (ErrorException). Kelas sing nyedhiyakake metode __get lan __set kanggo nggawe properti, utawa sifat dinamis ing stdClass, bakal terus ora owah, mung karya implisit karo sifat sing ora ana sing bakal didhukung kanggo nglindhungi pangembang saka kewan omo sing didhelikake. Kanggo ngreksa karya kode lawas, atribut "#[AllowDynamicProperties]" diusulake, ngidini panggunaan sifat dinamis.
  • Nyedhiyakake kemampuan kanggo nyaring paramΓ¨ter sensitif ing output tilak tumpukan nalika kesalahan. Ngilangi informasi tartamtu bisa uga dibutuhake nalika informasi babagan kesalahan sing kedadeyan kanthi otomatis dikirim menyang layanan pihak katelu sing nglacak masalah lan ngandhani pangembang babagan kasebut. Contone, sampeyan bisa ngilangi paramΓ¨ter sing kalebu jeneng panganggo, sandhi, lan variabel lingkungan saka dilacak. test fungsi ($foo, #[\SensitiveParameter] $sandi, $baz) {buwang Pengecualian anyar ('Error'); } test('foo', 'sandi', 'baz'); Kesalahan fatal: Pengecualian sing ora ditemokake: Kesalahan ing test.php: 8 Lacak tumpukan: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {utama} dibuwang ing test.php ing baris 8
  • Kemampuan kanggo ngganti nilai variabel menyang string nggunakake ekspresi "${var}" lan ${(var)} wis ora digunakake. Dhukungan kanggo substitusi "{$var}" lan "$var" sing umum digunakake wis ditahan. Contone: "Halo {$world}"; OK "Hello $world"; OK "Hello ${world}"; Ditinggalake: Panganggone ${} ing strings ora digunakake
  • Callable sing didhukung sebagian sing ora bisa digunakake sing bisa diarani liwat "call_user_func ($callable)" nanging ora ndhukung panggilan ing wangun "$callable()": "self::method" "parent::method" "static" ::method "["self", "method"] ["parent", "method"] ["statis", "method"] ["Foo", "Bar::method"] [New Foo, "Bar: :method" ]
  • Ngleksanakake konversi kasus lokal-independen. Fungsi kaya strtolower () lan strtoupper () saiki tansah ngowahi cilik saka karakter ing sawetara ASCII minangka yen disetel kanggo "C" lokal.

Source: opennet.ru

Add a comment