Bayan shekara guda na ci gaba gabatar sakin harshe na shirye-shirye PHP 7.4. Sabon reshe ya ƙunshi jerin sabbin abubuwa, da kuma canje-canje da yawa waɗanda ke karya daidaituwa.
Abubuwan da aka Buga - Kaddarorin aji yanzu na iya haɗawa da nau'in sanarwa, misali:
Mai amfani aji {
jama'a int $ id;
jama'a kirtani $name;
}
Taqaitaccen syntax don ma'anar ayyuka "fn (parameter_list) => expr" tare da iyakacin iyaka ta ƙimar. Misali, "fn($x) => $x + $y" yana kwatankwacin "$fn2 = aiki ($ x) amfani ($ y) {dawo $x + $y;}");
Ma'aikacin aikin gajeriyar hannu "??=" wanda za'a iya amfani dashi don ayyana ƙimar da aka saba ("a ?? = b" yayi kama da "a = a ?? b", idan "a" an bayyana darajarsa ana adana shi, kuma idan ba a bayyana shi ba. an sanya darajar "b" );
iyakance damar kiyaye tsarin gado na nau'ikan a cikin nau'ikan dawowar da aka samu, ko ikon juyar da martabar nau'ikan asali a cikin nau'ikan jayayya da aka samu (hadin kai nau'in dawowa da nau'in jayayya). Ana iya amfani da abubuwan ginawa masu zuwa yanzu a cikin PHP:
class A {}
aji B ya tsawaita A {}
Mai gabatarwa aji {
Hanyar aikin jama'a(): A {}
}
class ChildProducer ya tsawaita Furodusa {
Hanyar aikin jama'a(): B {}
}
Cire fakitin ma'aikata a cikin tsararraki "…$var", yarda yi musanya abubuwan da ke akwai lokacin da ake ayyana sabon tsararru;
Dama wakilcin gani na manyan lambobi tare da iyakoki a cikin lambobi (1_000_000_00);
goyon bayan rauni links, wanda ke ba ka damar riƙe ambaton abu, amma kada ka toshe mai tattara shara daga share abin da ke da alaƙa;
Sabon inji Serialization abu (haɗin Serializable da __sleep () / __ farkawa ()), wanda ya maye gurbin Serializable interface, wanda za a yanke;
// Yana mayar da jeri mai ɗauke da duk jihohin abin;
aikin jama'a __serialize(): tsararru;
// Yana dawo da yanayin abu daga tsararru
aikin jama'a __unserialize(array $data): banza;
An ba da izinin jefa keɓantacce daga hanya __toString();
Ƙara goyon baya don ƙaddamar da cache lambar abu. Ƙara siga don saiti opcache.preload, ta hanyar da za ku iya saka rubutun PHP wanda za a haɗa da aiki lokacin da uwar garken ya fara. Wannan rubutun na iya loda opcode na wasu fayiloli ta hanyar haɗa su kai tsaye ko ta amfani da aikin opcache_compile_file();
Ƙara aikin crc32c zuwa tsawo na Hash don ƙididdige ƙididdiga ta amfani da yawan adadin Castagnoli;
Ƙara goyon baya ga aikin kalmar sirri_hash () don hanyoyin hashing kalmar sirri argon2i da argin2id, a cikin aiwatar da ɗakin karatu na Sodium, idan an gina PHP ba tare da libargon ba;
Ƙara aikin mb_str_split(), mai kama da str_split(), amma yana aiki ba tare da bytes ba amma tare da matsayi na hali a cikin kirtani mai yawan byte;
Aikin strip_tags() yanzu yana da ikon wuce tsararru mai sunaye, watau. maimakon strip_tags($str, '') yanzu zaku iya saka strip_tags($str, ['a','p']);
proc_open() yana ba da damar jera operands a cikin jeri, maimakon kirtani don gudana, kuma yana ba da juyar da zare da goyan baya ga mai siffanta fayil ɗin banza;
// kamar 2>/dev/null ko 2>nul a cikin harsashi
proc_open ($ cmd, [1 => ['bututu', 'w'], 2 => ['null']], $pipes);
Firebird/Interbase, Recode da WDDX kari an cire su daga ainihin rarraba. Wadannan kari yanzu ana rarraba su ta hanyar PECL;
Canja wurin zuwa rukuni m fasalulluka irin su masu aiki na ternary ba tare da ƙira ba, samun dama ga abubuwa masu tsattsauran ra'ayi da kirtani ta yin amfani da takalmin gyaran kafa ("$ var{$idx}"), aikin is_real() da yin simintin gaske, ta amfani da kalmar maɓallin iyaye ba tare da ajin iyaye ba, siga allow_url_include saituna. , ta amfani da array_key_exists() akan abubuwa.
An ba da gargaɗi game da amfani da tsohuwar siffa lokacin ƙoƙarin aiwatar da alamomin da ba daidai ba a ayyuka
base_convert(), bindec(), octdec() da hexdec(), da kuma lokacin da aka tantance tsarin mara kirtani a mb_ereg_replace().