Rilis basa pemrograman PHP 7.4

Sawise setahun pembangunan diwenehi release basa pemrograman PHP 7.4. Cabang anyar kalebu seri fitur anyar, uga sawetara owah-owahan sing break kompatibilitas.

Kunci dandan ing PHP 7.4:

  • Properti sing diketik - properti kelas saiki bisa kalebu deklarasi jinis, contone:

    panganggo kelas {
    public int $id;
    string umum $jeneng;
    }

  • Dicekak sintaks kanggo nemtokake fungsi "fn(parameter_list) => expr" karo scope binding dening nilai. Contone, "fn ($x) => $x + $y" analog karo "$fn2 = fungsi ($x) nggunakake ($y) {bali $x + $y;}");
  • Operator penugasan singkatan "???=" sing bisa digunakake kanggo nemtokake nilai standar ("a ??= b" padha karo "a = a ?? b", yen "a" ditetepake nilai kasebut disimpen, lan yen ora ditetepake. diwenehi nilai "b");
  • Dibatesi kesempatan njaga hierarki warisan saka jinis ing jinis bali sing diturunake, utawa kemampuan kanggo mbalikke hierarki jinis asli ing jinis argumen sing diturunake (kovarian jinis bali lan kontravarian jinis argumen). Konstruksi ing ngisor iki saiki bisa digunakake ing PHP:

    kelas A {}
    kelas B ngluwihi A {}

    Produser kelas {
    metode fungsi publik(): A {}
    }
    kelas ChildProducer ngluwihi Produser {
    metode fungsi publik(): B {}
    }

  • Mbukak kemasan operator ing jero larik "...$var", ngidini nindakake substitusi array sing wis ana nalika nemtokake array anyar;

    $parts = ['apel', 'pir'];
    $woh = ['pisang', 'jeruk', ...$bagian, 'semangka'];
    // ['pisang', 'jeruk', 'apel', 'pir', 'semangka'];

  • Opportunity representasi visual saka nomer gedhe karo delimiters ing literal numerik (1_000_000_00);
  • support pranala lemah, sing ngidini sampeyan nahan referensi menyang obyek, nanging ora ngalangi kolektor sampah mbusak obyek sing gegandhengan;
  • anyar mekanisme serialization obyek (kombinasi saka Serializable lan __sleep () / __wakeup ()), kang diganti antarmuka Serializable, kang bakal deprecated;

    // Ngasilake array sing ngemot kabeh negara obyek;
    fungsi umum __serialize (): array;

    // Mulihake kahanan obyek saka array
    public function __unserialize(array $data): void;

  • Diijini uncalan pangecualian saka cara __toString();
  • Ditambahake dhukungan kanggo preloading cache kode obyek. Parameter sing ditambahake kanggo setelan
    opcache.preload, liwat sampeyan bisa nemtokake skrip PHP sing bakal disusun lan mbukak nalika server diwiwiti. Skrip iki bisa mbukak opcode file liyane liwat Gawan langsung utawa nggunakake opcache_compile_file () fungsi;

  • Nambahake fungsi crc32c menyang extension Hash kanggo ngitung checksums nggunakake polinomial Castagnoli;
  • Added support kanggo password_hash () fungsi kanggo sandi hashing cara argon2i lan argin2id, ing implementasine saka perpustakaan Sodium, yen PHP dibangun tanpa libargon;
  • Added fungsi mb_str_split (), padha karo str_split (), nanging operasi ora karo bita nanging karo posisi karakter ing senar multi-bait;
  • Fungsi strip_tags () saiki nduweni kemampuan kanggo pass array karo jeneng tag, i.e. tinimbang strip_tags($str, ' ') saiki sampeyan bisa nemtokake strip_tags ($str, ['a', 'p']);
  • proc_open () ngidini operand kanggo kadhaptar ing Uploaded, tinimbang senar kanggo mbukak, lan uga menehi redirection thread lan support kanggo deskriptor file null;

    proc_open(['php', '-r', 'echo "Hello World\n";'], $deskriptor, $pipes);

    // Kaya 2>&1 ing cangkang
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);

    // kaya 2> / dev / null utawa 2> nul ing cangkang
    proc_open($cmd, [1 => ['pipa', 'w'], 2 => ['null']], $pipe);

  • Ekstensi Firebird / Interbase, Recode lan WDDX ora kalebu saka distribusi dhasar. Ekstensi iki saiki disebarake liwat PECL;
  • Dipindhah menyang kategori lungse fitur kayata operator ternary nested tanpa kurung, ngakses unsur array lan strings nggunakake kurung kriting ("$var{$idx}"), fungsi is_real () lan casting kanggo nyata, nggunakake tembung kunci induk tanpa kelas induk, parameter allow_url_include konfigurasi , nggunakake array_key_exists () ing obyek.

    Fungsi get_magic_quotes_gpc(), get_magic_quotes_runtime(), lan
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().

    Bebaya babagan panggunaan fitur sing wis lungse wis diwenehake nalika nyoba ngolah simbol sing salah ing fungsi.
    base_convert (), bindec (), octdec () lan hexdec (), lan nalika nemtokake pola non-string ing mb_ereg_replace ().

Source: opennet.ru

Add a comment