Wara sena ta 'żvilupp ippreżentata rilaxx tal-lingwa ta 'programmar PHP 7.4. Il-fergħa l-ġdida tinkludi serje ta 'karatteristiċi ġodda, kif ukoll diversi bidliet li jiksru l-kompatibilità.
Proprjetajiet ittajpjati - il-proprjetajiet tal-klassi issa jistgħu jinkludu dikjarazzjonijiet tat-tip, pereżempju:
Utent tal-klassi {
public int $id;
string pubblika $name;
}
Imqassar sintassi għad-definizzjoni tal-funzjonijiet "fn(parameter_list) => expr" bl-ambitu li jorbot bil-valur. Pereżempju, “fn($x) => $x + $y” hija analoga għal “$fn2 = function ($x) use ($y) {return $x + $y;}”);
Operatur ta' assenjazzjoni shorthand "??=" li jista' jintuża biex jiddefinixxi valur default ("a ??= b" huwa simili għal "a = a ?? b", jekk "a" huwa definit il-valur tiegħu jinħażen, u jekk mhux definit huwa huwa assenjat il-valur "b" );
Limitat opportunità il-preservazzjoni tal-ġerarkija tal-wirt tat-tipi f'tipi ta' ritorn derivati, jew il-kapaċità li ireġġa' lura l-ġerarkija tat-tipi oriġinali f'tipi ta' argument derivati (kovarjanza kontravarjanza tat-tip ta’ ritorn u tat-tip ta’ argument). Il-kostruzzjonijiet li ġejjin issa jistgħu jintużaw fil-PHP:
klassi A {}
klassi B testendi A {}
Produttur tal-klassi {
metodu tal-funzjoni pubblika (): A {}
}
klassi ChildProducer testendi Producer {
metodu tal-funzjoni pubblika (): B {}
}
Operatur tal-ispakkjar ġewwa arrays “…$var”, tippermetti twettaq sostituzzjoni ta 'arrays eżistenti meta tiddefinixxi array ġdid;
Opportunità rappreżentazzjoni viżwali ta' numri kbar b'delimitaturi f'literali numeriċi (1_000_000_00);
Appoġġ rabtiet dgħajfa, li jippermettulek iżżomm referenza għal oġġett, iżda ma jimblokkax lill-kollettur taż-żibel milli jħassar l-oġġett assoċjat;
New mekkaniżmu serialization tal-oġġett (kombinazzjoni ta 'Serializable u __sleep()/__wakeup()), li ssostitwixxa l-interface Serializable, li se jkun deprecated;
// Jirritorna firxa li fiha l-istati kollha tal-oġġett;
funzjoni pubblika __serialize(): array;
// Jirrestawra l-istat ta 'oġġett minn firxa
funzjoni pubblika __unserialize(array $data): null;
Ippermettiet li tarmi eċċezzjonijiet minn metodu __toString();
Appoġġ miżjud għall-preloading tal-cache tal-kodiċi tal-oġġett. Miżjud parametru għall-issettjar opcache.preload, li permezz tiegħu tista 'tispeċifika script PHP li se jiġi kkompilat u mmexxi meta jibda s-server. Dan l-iskritt jista' jgħabbi l-opcode ta' fajls oħra permezz tal-inklużjoni diretta tagħhom jew bl-użu tal-funzjoni opcache_compile_file();
Miżjud funzjoni crc32c mal-estensjoni Hash biex tikkalkula checksums bl-użu tal-polinomju Castagnoli;
Appoġġ miżjud għall-funzjoni password_hash() għall-metodi ta 'hashing tal-password argon2i u argin2id, fl-implimentazzjoni tal-librerija tas-Sodium, jekk PHP jinbena mingħajr libargon;
Funzjoni miżjuda mb_str_split(), simili għal str_split(), iżda topera mhux b'bytes iżda b'pożizzjonijiet ta' karattri f'sekwenza b'ħafna byte;
Il-funzjoni strip_tags() issa għandha l-abbiltà li tgħaddi firxa b'ismijiet ta 'tag, i.e. minflok strip_tags($str, ‘’) issa tista’ tispeċifika strip_tags($str, [‘a’, ‘p’]);
proc_open() jippermetti li l-operandi jiġu enumerati f'array aktar milli f'sekwenza biex titħaddem, u tipprovdi wkoll direzzjoni mill-ġdid tal-ħajt u appoġġ għal deskrittur tal-fajl null;
// bħal 2>/dev/null jew 2>nul fil-qoxra
proc_open($cmd, [1 => [‘pajp’, ‘w’], 2 => [‘null’]], $pajpijiet);
L-estensjonijiet Firebird/Interbase, Recode u WDDX huma esklużi mid-distribuzzjoni bażika. Dawn l-estensjonijiet issa huma mqassma permezz tal-PECL;
Trasferit għall-kategorija skaduti karatteristiċi bħal operaturi ternarji nested mingħajr parentesi, aċċess għall-elementi ta’ firxa u kordi bl-użu ta’ ċineg kaboċċi (“$var{$idx}”), il-funzjoni is_real() u casting għal reali, bl-użu tal-kelma prinċipali ġenitur mingħajr klassi ġenitur, parametru allow_url_include konfigurazzjonijiet , billi tuża array_key_exists() fuq oġġetti.
Twissija dwar l-użu ta' karatteristika skaduta ġiet ipprovduta meta ppruvaw jiġu pproċessati simboli mhux korretti fil-funzjonijiet
base_convert(), bindec(), octdec() u hexdec(), u meta tispeċifika mudell mhux string f'mb_ereg_replace().