Ukukhishwa kolimi lokuhlela lwe-PHP 7.4

Ngemva konyaka wentuthuko kwethulwe ukukhululwa kolimi lokuhlela I-PHP 7.4. Igatsha elisha lihlanganisa uchungechunge lwezici ezintsha, kanye nezinguquko ezimbalwa ezinqamula ukuhambisana.

Ukhiye ukuthuthukiswa ku-PHP 7.4:

  • Izakhiwo Ezithayiphiwe - izakhiwo zekilasi manje zingafaka izimemezelo zohlobo, isibonelo:

    Umsebenzisi wekilasi {
    int $id yomphakathi;
    iyunithi yezinhlamvu ezisesidlangalaleni $name;
    }

  • Isifinyezo i-syntax yokuchaza imisebenzi β€œfn(parameter_list) => expr” ene-scope ebophezela ngevelu. Ngokwesibonelo, β€œfn($x) => $x + $y” ifana nokuthi β€œ$fn2 = umsebenzi ($x) sebenzisa ($y) {buyisela $x + $y;}”);
  • U-opharetha wesabelo esifushane "??=" engasetshenziswa ukuchaza inani elimisiwe ("a ??= b" lifana nelithi "a = a ?? b", uma elithi "a" lichazwa inani layo ligcinwa, futhi uma lingachazwanga. unikezwe inani "b");
  • Inomkhawulo ithuba ukulondoloza isigaba sefa sezinhlobo ezinhlotsheni zokubuyisela ezitholiwe, noma ikhono lokuhlehlisa ukulandelana kwezinhlobo zangempela ezinhlotsheni zezimpikiswano ezitholiwe (i-covariance buyisela uhlobo kanye nokuphikisana kohlobo lwempikiswano). Ukwakhiwa okulandelayo manje kungasetshenziswa ku-PHP:

    isigaba A {}
    isigaba B sinweba u-A {}

    Umdidiyeli wekilasi {
    indlela yokusebenza yomphakathi(): A {}
    }
    class ChildProducer welula Umkhiqizi {
    indlela yokusebenza yomphakathi(): B {}
    }

  • Ikhipha u-opharetha ngaphakathi kwamalungu afanayo β€œβ€¦$var”, ukuvumela yenza esikhundleni samalungu afanayo akhona lapho uchaza amalungu afanayo amasha;

    $parts = ['i-apula', 'ipheya'];
    $fruits = ['ubhanana', 'orange', …$parts, 'ikhabe'];
    // ['ibhanana', 'iwolintshi', 'i-apula', 'ipheya', 'ikhabe'];

  • Ithuba ukumelwa okubukwayo kwezinombolo ezinkulu ezinama-delimiters ngamagama ezinombolo (1_000_000_00);
  • ukweseka izixhumanisi ezibuthakathaka, okuvumela ukuthi ugcine ireferensi yento, kodwa ungavimbeli umqoqi kadoti ekususeni into ehlobene;
  • Kusha indlela ukwenziwa kwe-serialization kwento (inhlanganisela ye-Serializable kanye __sleep()/__wakeup()), ethathele indawo isixhumi esibonakalayo esingakwazi ukusebenza, esizohoxiswa;

    // Ibuyisela uhlelo oluqukethe zonke izimo zento;
    umsebenzi womphakathi __serialize(): uhlu;

    // Ibuyisela isimo sento ohlwini
    umsebenzi womphakathi __unserialize(uhlu lwedatha ye-$): ayisebenzi;

  • Kuvunyelwe ukuphonsa okuhlukile endleleni __toString();
  • Kwengezwe usekelo lokulayisha kuqala inqolobane yekhodi yento. Kwengezwe ipharamitha yokusetha
    i-opcache.preload, ongacacisa ngayo umbhalo we-PHP ozohlanganiswa futhi usebenze lapho iseva iqala. Lesi script singalayisha i-opcode yamanye amafayela ngokufakwa kwawo ngokuqondile noma kusetshenziswa umsebenzi we-opcache_compile_file();

  • Kwengezwe umsebenzi we-crc32c kusandiso se-Hash ukuze kubalwe amasheke kusetshenziswa i-Castagnoli polynomial;
  • Ukwesekwa okungeziwe kumsebenzi we-password_hash() wezindlela ze-hashing ze-password i-argon2i ne-argin2id, ekusetshenzisweni komtapo wezincwadi we-Sodium, uma i-PHP yakhiwe ngaphandle kwe-libargon;
  • Umsebenzi owengeziwe mb_str_split(), ofana nokuthi str_split(), kodwa awusebenzi ngamabhayithi kodwa unezindawo zezinhlamvu ochungechungeni lwamabhayithi amaningi;
  • Umsebenzi we-strip_tags() manje unamandla okudlulisa uhlu olunamagama omaka, i.e. esikhundleni sokuthi strip_tags($str, ' ') ungakwazi manje ukucacisa strip_tags($str, ['a', 'p']);
  • i-proc_open() ivumela ama-operands ukuthi afakwe ohlwini lwamalungu afanayo kunokuba iyunithi yezinhlamvu isebenze, futhi inikeza ukuqondisa kabusha kwentambo nokusekelwa kwesichazi sefayela elingenalutho;

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

    // Njengo-2>&1 kugobolondo
    proc_open($cmd, [1 => ['ipayipi', 'w'], 2 => ['qondisa kabusha', 1]], $amapayipi);

    // like 2>/dev/null noma 2>nul kugobolondo
    proc_open($cmd, [1 => ['ipayipi', 'w'], 2 => ['null']], $amapayipi);

  • Izandiso ze-Firebird/Interbase, Recode ne-WDDX azifakiwe ekusabalaliseni okuyisisekelo. Lezi zandiso manje zisatshalaliswa nge-PECL;
  • Kudluliselwe esigabeni isiphelelwe yisikhathi izici ezifana nama-opharetha akhiwe esidlekeni angenabo abakaki, ukufinyelela izakhi zamalungu afanayo nezintambo kusetshenziswa izikaki ezigoqekile (β€œ$var{$idx}”), umsebenzi we-is_real() nokusakaza kokungokoqobo, kusetshenziswa igama elingukhiye elingumzali ngaphandle kwekilasi lomzali, ipharamitha allow_url_include izilungiselelo , usebenzisa i-array_key_exists() ezintweni.

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

    Isexwayiso mayelana nokusetshenziswa kwesici esiphelelwe yisikhathi sinikezwe lapho kuzanywa ukucubungula izimpawu ezingalungile emisebenzini
    base_convert(), bindec(), octdec() kanye ne-hexdec(), nalapho ucacisa iphethini engeyona iyunithi yezinhlamvu kokuthi mb_ereg_replace().

Source: opennet.ru

Engeza amazwana