Apre yon ane nan devlopman lage langaj pwogramasyon . Branch nan nouvo gen ladan yon seri de karakteristik nouvo, osi byen ke plizyè chanjman ki kraze konpatibilite.
Kle nan PHP 7.4:
- - pwopriyete klas yo kapab kounye a gen ladan deklarasyon kalite, pou egzanp:
Itilizatè klas {
piblik int $id;
fisèl piblik $non;
} - sentaks pou defini fonksyon "fn(parameter_list) => expr" ak dimansyon obligatwa pa valè. Pa egzanp, “fn($x) => $x + $y” se analogue ak “$fn2 = fonksyon ($x) itilize ($y) {retounen $x + $y;}”);
- "??=" ki ka itilize pou defini yon valè default ("a ??= b" se menm jan ak "a = a ?? b", si "a" yo defini valè li yo estoke, epi si li pa defini li yo bay valè "b" );
- Limite prezève yerachi eritaj kalite yo nan kalite retounen derive, oswa kapasite pou ranvèse yerachi kalite orijinal yo nan kalite agiman derive ( kalite retounen ak kalite agiman kontrè). Konstriksyon sa yo ka itilize kounye a nan PHP:
klas A {}
klas B pwolonje A {}pwodiktè klas {
metòd fonksyon piblik (): A {}
}
klas ChildProducer pwolonje Pwodiktè {
metòd fonksyon piblik (): B {}
} - Debalaj operatè andedan etalaj "...$var", fè sibstitisyon nan etalaj ki deja egziste lè defini yon nouvo etalaj;
$pati = ['pòm', 'pwa'];
$fwi = ['bannann', 'zoranj', …$pati, 'melon'];
// ['bannann', 'zoranj', 'pòm', 'pwa', 'melon']; - reprezantasyon vizyèl gwo nimewo ak delimitasyon nan literal nimerik (1_000_000_00);
- Sipòte , ki pèmèt ou kenbe yon referans a yon objè, men pa anpeche pèseptè a fatra nan efase objè ki asosye a;
- New serializasyon objè (yon konbinezon Serializable ak __sleep()/__wakeup()), ki ranplase koòdone Serializable a, ki pral depreke;
// Retounen yon etalaj ki genyen tout eta objè a;
fonksyon piblik __serialize(): etalaj;// Retabli eta yon objè ki soti nan yon etalaj
fonksyon piblik __unserialize(etalaj $done): anile; - Pèmèt yo voye eksepsyon nan yon metòd ;
- Te ajoute sipò pou preloading kachèt kòd objè a. Te ajoute paramèt pou mete
, atravè ki ou ka presize yon script PHP ki pral konpile epi kouri lè sèvè a kòmanse. Script sa a ka chaje opcode lòt dosye atravè enklizyon dirèk yo oswa lè l sèvi avèk fonksyon opcache_compile_file(); - Te ajoute fonksyon crc32c nan ekstansyon Hash la pou kalkile checksums lè l sèvi avèk polinòm Castagnoli;
- Te ajoute sipò nan fonksyon password_hash() pou metòd hashing modpas argon2i ak argin2id, nan aplikasyon bibliyotèk Sodyòm, si PHP bati san libargon;
- Te ajoute fonksyon mb_str_split(), menm jan ak str_split(), men opere pa ak bytes men ak pozisyon karaktè nan yon fisèl milti-byte;
- Fonksyon strip_tags() kounye a gen kapasite pou pase yon etalaj ak non tag, sa vle di. olye de strip_tags($str, ' ') ou kapab kounye a presize strip_tags($str, ['a', 'p']);
- proc_open() pèmèt operands yo dwe nan lis nan yon etalaj, olye ke yon fisèl kouri, epi tou li bay redireksyon fil ak sipò pou yon deskriptè dosye nil;
proc_open(['php', '-r', 'eko "Bonjou mond\n";'], $deskriptè, $pipes);
// Tankou 2>&1 nan koki
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redireksyon', 1]], $tiyo);// tankou 2>/dev/null oswa 2>nul nan koki
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes); - Ekstansyon Firebird/Interbase, Recode ak WDDX yo eskli nan distribisyon debaz la. Kounye a, ekstansyon sa yo distribye atravè PECL;
- Transfere nan kategori karakteristik tankou operatè ternary enbrike san parantèz, aksè nan eleman etalaj ak fisèl lè l sèvi avèk atèl boukle ("$var{$idx}"), is_real() ak depoze nan reyèl, lè l sèvi avèk mo kle paran an san yon klas paran, paramèt allow_url_include konfigirasyon, lè l sèvi avèk array_key_exists() sou objè yo.
Fonksyon get_magic_quotes_gpc(), get_magic_quotes_runtime(), ak
hebrevc (), convert_cyr_string (), money_format (), ezmlm_hash (), restore_include_path (), ldap_control_paged_result_response (), ldap_control_paged_result (), ReflectionType::__toString ().Yo bay yon avètisman sou itilizasyon yon karakteristik demode lè w ap eseye trete senbòl ki pa kòrèk nan fonksyon yo
base_convert (), bindec (), octdec () ak hexdec (), epi lè yo presize yon modèl ki pa kòd nan mb_ereg_replace ().
Sous: opennet.ru
