PHP 7.4 release basa programming

Sanggeus sataun pangwangunan ditepikeun release basa programming PHP 7.4. Cabang anyar ngawengku runtuyan fitur anyar, kitu ogé sababaraha parobahan nu megatkeun kasaluyuan.

konci pamutahiran dina PHP 7.4:

  • Pasipatan diketik - sipat kelas ayeuna tiasa kalebet deklarasi jinis, contona:

    pamaké kelas {
    publik int $id;
    string umum $ ngaran;
    }

  • Disingget sintaksis pikeun nangtukeun fungsi "fn (parameter_list) => expr" kalawan wengkuan mengikat ku nilai. Contona, "fn ($ x) => $ x + $ y" analog jeung "$ fn2 = fungsi ($ x) pamakéan ($ y) {balik $ x + $ y;}");
  • Operator ngerjakeun shorthand "???=" nu bisa dipaké pikeun nangtukeun nilai standar ("a ??= b" sarua jeung "a = a ?? b", lamun "a" dihartikeun nilai na disimpen, sarta lamun teu ngartikeun eta. ditugaskeun nilai "b");
  • kawates kasempetan ngawétkeun hirarki warisan jinis dina jinis mulang turunan, atanapi kamampuan ngabalikeun hirarki jinis asli dina jinis argumen turunan (kovarian tipe balik jeung kontravarian tipe argumen). Konstruk di handap ayeuna tiasa dianggo dina PHP:

    kelas A {}
    kelas B ngalegaan A {}

    Produser kelas {
    métode fungsi publik (): A {}
    }
    kelas ChildProducer ngalegaan Produser {
    métode fungsi publik (): B {}
    }

  • Ngabongkar bungkusan operator di jero arrays "...$var", ngidinan ngalakukeun substitusi tina arrays aya nalika nangtukeun Asép Sunandar Sunarya anyar;

    $bagian = [ 'apel', 'pir'];
    $buah = ['cau', 'jeruk', ...$bagian, 'samangka'];
    // ['cau', 'jeruk', 'apel', 'pir', 'samaka'];

  • kasempetan Répréséntasi visual tina jumlah badag kalawan delimiters dina literals numerik (1_000_000_00);
  • sokongan Tumbu lemah, nu ngidinan Anjeun pikeun nahan hiji rujukan ka obyék, tapi ulah meungpeuk collector sampah mupus objék pakait;
  • anyar mékanisme serialization objék (kombinasi Serializable na __sleep () / __wakeup ()), nu ngaganti panganteur Serializable, nu bakal deprecated;

    // Mulih hiji Asép Sunandar Sunarya ngandung sakabéh kaayaan obyék;
    fungsi publik __serialize (): Asép Sunandar Sunarya;

    // Restores kaayaan hiji obyék ti Asép Sunandar Sunarya
    fungsi publik __unserialize (array $ data): batal;

  • Diidinan buang iwal ti metoda a __toString();
  • Ditambahkeun rojongan pikeun preloading cache kode objék. parameter ditambahkeun pikeun setelan
    opcache.preload, ngaliwatan nu bisa nangtukeun Aksara PHP anu bakal disusun tur ngajalankeun nalika server dimimitian. Skrip ieu tiasa ngamuat opcode file anu sanés ngalangkungan citakan langsung atanapi nganggo fungsi opcache_compile_file ();

  • Ditambahkeun fungsi crc32c kana extension Hash pikeun ngitung checksums ngagunakeun Castagnoli polynomial;
  • Ditambahkeun rojongan kana password_hash () fungsi pikeun sandi hashing métode argon2i na argin2id, dina palaksanaan perpustakaan Natrium, lamun PHP diwangun tanpa libargon;
  • Ditambahkeun fungsi mb_str_split (), sarupa jeung str_split (), tapi operasi teu kalawan bait tapi kalawan posisi karakter dina string multi-bait;
  • Fungsi strip_tags () kiwari mibanda kamampuhan pikeun lulus hiji Asép Sunandar Sunarya kalawan ngaran tag, i.e. tinimbang strip_tags ($ str, ' ') anjeun ayeuna bisa nangtukeun strip_tags ($ str, ['a', 'p']);
  • proc_open () ngamungkinkeun operand didaptarkeun dina Asép Sunandar Sunarya, tinimbang string ngajalankeun, sarta ogé nyadiakeun thread redirection sarta rojongan pikeun descriptor file null;

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

    // Kawas 2>&1 dina cangkang
    proc_open($cmd, [1 => ['pipa', 'w'], 2 => ['alihan', 1]], $pipe);

    // siga 2>/dev/null atawa 2>nul dina cangkang
    proc_open ($cmd, [1 => ['pipa', 'w'], 2 => ['null']], $pipe);

  • Firebird / Interbase, Recode na WDDX ekstensi teu kaasup ti sebaran dasar. Ekstensi ieu ayeuna disebarkeun ngaliwatan PECL;
  • Dialihkeun kana kategori katinggaleun jaman fitur sapertos operator ternary nested tanpa kurung, ngakses elemen Asép Sunandar Sunarya na string ngagunakeun braces Curly ("$ var {$ idx}"), fungsi is_real () jeung casting mun nyata, ngagunakeun keyword indungna tanpa kelas indungna, parameter allow_url_include konfigurasi , ngagunakeun array_key_exists () dina objék.

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

    Peringatan ngeunaan pamakean fitur usang parantos disayogikeun nalika nyobian ngolah simbol anu salah dina fungsi.
    base_convert (), bindec (), octdec () sarta hexdec (), sarta lamun nangtukeun pola non-string di mb_ereg_replace ().

sumber: opennet.ru

Tambahkeun komentar