Urtebeteko garapenaren ostean programazio lengoaia kaleratzea . Adar berriak ezaugarri berri batzuk biltzen ditu, baita bateragarritasuna hausten duten hainbat aldaketa ere.
Gakoa PHP 7.4n:
- - Klaseen propietateek orain mota deklarazioak izan ditzakete, adibidez:
klaseko erabiltzailea {
public int $id;
kate publikoa $izena;
} - "fn(parameter_list) => expr" funtzioak definitzeko sintaxia balioaren araberako loturarekin. Adibidez, “fn($x) => $x + $y”-ren antzekoa da “$fn2 = funtzio ($x) erabilera ($y) {itzulera $x + $y;}”);
- "??=" balio lehenetsi bat definitzeko erabil daitekeena ("a ??= b" "a = a ?? b"-ren antzekoa da, "a" definituta badago bere balioa gordetzen da, eta definitu ezean "b" balioa esleitzen zaio);
- Mugatua eratorritako itzuleran moten moten herentzia hierarkia gordetzea edo argumentu mota eratorrietan jatorrizko moten hierarkia alderantzikatzeko gaitasuna ( itzulera mota eta argumentu mota kontrabariantza). Hona hemen eraikitze hauek PHPn erabil daitezke:
A klasea {}
B klasea A {} hedatzen duklaseko ekoizlea {
funtzio publikoaren metodoa (): A {}
}
ChildProducer klasea Producer { hedatzen du
funtzio publikoaren metodoa (): B {}
} - “…$var” array barruko eragilea deskonprimitzen lehendik dauden arrayen ordezkapena egin matrize berri bat definitzerakoan;
$parts = ['sagarra', 'udarea'];
$frutak = ['banana', 'laranja', ...$zatiak, 'Sandia'];
// ['banana', 'laranja', 'sagarra', 'udarea', 'angurdia']; - zenbaki handien irudikapen bisuala mugatzaileak dituzten zenbakizko literaletan (1_000_000_00);
- Lagundu , objektu bati erreferentzia bat gordetzeko aukera ematen dutenak, baina ez diote zabor-biltzaileari lotutako objektua ezabatzea blokeatzen;
- New objektu serializazioa (Serializable eta __sleep()/__wakeup()-ren konbinazioa), Serializable interfazea ordezkatu zuena, zaharkituta geratuko dena;
// Objektuaren egoera guztiak dituen array bat itzultzen du;
funtzio publikoa __serialize(): array;// Objektu baten egoera berreskuratzen du array batetik
funtzio publikoa __unserialize(array $data): void; - Metodo batetik salbuespenak botatzeko baimena ;
- Objektu-kodeen cachea aldez aurretik kargatzeko laguntza gehitu da. Ezartzeko parametroa gehitu da
, zeinaren bidez zerbitzaria abiarazten denean konpilatu eta exekutatuko den PHP script bat zehaztu dezakezu. Script honek beste fitxategi batzuen operazio-kodea kargatu dezake zuzenean sartzearen bidez edo opcache_compile_file() funtzioa erabiliz; - Hash luzapenean crc32c funtzioa gehitu da Castagnoli polinomioa erabiliz checksumak kalkulatzeko;
- Argon2i eta argin2id pasahitzaren hash metodoetarako password_hash() funtzioari euskarria gehitu zaio, Sodium liburutegiaren inplementazioan, PHP libargon gabe eraikitzen bada;
- mb_str_split() funtzioa gehitu da, str_split(ren antzekoa), baina ez byteekin funtzionatzen du, baina byte anitzeko kate batean karaktere-posizioekin;
- strip_tags() funtzioak orain etiketa-izenekin array bat pasatzeko gaitasuna du, hau da. strip_tags($str, '') ordez strip_tags($str, ['a', 'p']) zehaztu dezakezu);
- proc_open()-ek eragigaiak kate batean exekutatu beharrean array batean zenbatzea ahalbidetzen du, eta haria birbideratzea eta fitxategi deskribatzaile nulurako euskarria ere eskaintzen du;
proc_open(['php', '-r', 'oihartzuna "Kaixo Mundua\n";'], $deskribatzaileak, $pipes);
// 2>&1 bezala shell-ean
proc_open($cmd, [1 => [‘tudia’, ‘w’], 2 => [‘birbideratu’, 1]], $tutuak);// shell-en 2>/dev/null edo 2>nul bezala
proc_open($cmd, [1 => ['tudia', 'w'], 2 => ['null']], $tutuak); - Firebird/Interbase, Recode eta WDDX luzapenak oinarrizko banaketatik kanpo geratzen dira. Luzapen hauek PECL bidez banatzen dira orain;
- Kategorira transferitu ezaugarriak, hala nola, parentesirik gabeko habiaraturiko operadore ternarioak, array-elementuak eta kateak giltza kizkurren bidez atzitzea ("$var{$idx}"), is_real() funtzioa eta errealera igortzea, guraso klaserik gabeko gako-hitza erabiliz, allow_url_include konfigurazioak parametroa , objektuetan array_key_exists() erabiliz.
get_magic_quotes_gpc(), get_magic_quotes_runtime() eta funtzioak
hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().Ezaugarri zaharkitu baten erabilerari buruzko abisua eman da funtzioetan ikur okerrak prozesatzen saiatzean
base_convert(), bindec(), octdec() eta hexdec(), eta mb_ereg_replace(n) kate gabeko eredua zehazten denean.
Iturria: opennet.ru
