Piştî salek pêşveçûn serbestberdana zimanê bernamekirinê . Şaxa nû rêzek taybetmendiyên nû vedihewîne, û her weha gelek guhertinên ku lihevhatinê dişkînin.
Qûfle di PHP 7.4 de:
- - Taybetmendiyên polê naha dikarin danezanên tîpan jî bihewînin, mînakî:
class Bikarhêner {
giştî int $id;
rêzika giştî $name;
} - hevoksaziya ji bo diyarkirina fonksiyonên "fn (lîsteya_parameter) => expr" bi nirxê ve girêdayî ye. Mînakî, "fn($x) => $x + $y" wekî "$fn2 = fonksiyona ($x) bikar tîne ($y) {vegere $x + $y;}");
- "??=" ku dikare ji bo danasîna nirxek xwerû were bikar anîn ("a ??= b" dişibihe "a = a ?? b", heke "a" were diyar kirin nirxa wê tê hilanîn, û heke neyê diyar kirin nirxa "b" tê dayîn);
- Limited parastina hiyerarşiya mîrasî ya celeban di celebên vegerê yên jêhatî de, an jî şiyana berevajîkirina hiyerarşiya celebên orîjînal di celebên argumanên jêhatî de ( cureya vegerê û nakokiya cureya argumanê). Avakirinên jêrîn naha dikarin di PHP-ê de werin bikar anîn:
pola A {}
pola B A dirêj dike {}class Producer {
rêbaza fonksiyona giştî(): A {}
}
class ChildProducer berfireh dike Producer {
rêbaza fonksiyona giştî(): B {}
} - Vekirina operatorê di hundurê rêzikên "…$var", dema danasîna rêzek nû cîgirkirina rêzikên heyî pêk bîne;
$parts = ['sêv', 'hirmî'];
$fruits = ['mûz', 'porteqal', ...$parts, 'zebek'];
// ['mûz', 'porteqal', 'sêv', 'hirmî', 'zebek']; - temsîla dîtbarî ya hejmarên mezin bi veqetandekên bi tîpên jimarî (1_000_000_00);
- alîkarî , ku destûrê dide te ku hûn referansek li ser tiştekê bihêlin, lê berhevkarê çopê ji jêbirina tiştê têkildar asteng nakin;
- Nû serialîzasyona objektê (tevlihevkirina Serializable û __sleep()/__wakeup()), ku şûna navrûya Serializable girt, ya ku dê were paşguh kirin;
(
fonksiyona giştî __serialize(): array;// Rewşa heyberekê ji rêzê vedigerîne
fonksiyona giştî __unserialize(array $data): betal; - Destûr dide ku ji rêbazek îstîsnayan bavêje ;
- Piştgiriyek ji bo pêşda barkirina cache koda objektê zêde kir. Parametreya zêdekirî ji bo mîhengê
, bi rêya wê hûn dikarin skrîptek PHP-ê diyar bikin ku dema server dest pê dike dê were berhev kirin û xebitandin. Ev skrîpt dikare opcode pelên din bi tevlêbûna rasterast an bi karanîna fonksiyona opcache_compile_file() bar bike; - Fonksiyona crc32c li dirêjkirina Hash zêde kir da ku jimareyên kontrolê bi karanîna polynomiya Castagnoli hesab bike;
- Di pêkanîna pirtûkxaneya Sodyûmê de, heke PHP bê libargon were çêkirin, piştgirî ji fonksiyona password_hash() re ji bo rêbazên hejandina şîfreya argon2i û argin2id zêde kir;
- Fonksiyona zêdekirî mb_str_split(), dişibihe str_split(), lê ne bi byte lê bi pozîsyonên karakteran di rêzikek pir-byte de dixebite;
- Fonksiyona strip_tags() naha xwedan şiyana derbaskirina arrayek bi navên etîketan e, yanî. li şûna strip_tags($str, '') niha hûn dikarin strip_tags diyar bikin ($str, ['a', 'p']);
- proc_open() dihêle ku operand li şûna rêzek ku were xebitandin, di rêzek rêzek de bêne navnîş kirin, û her weha beralîkirina mijarê û piştgirî ji bo ravekerek pelê null peyda dike;
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
// Wek 2>&1 di şêlê de
proc_open($cmd, [1 => ['boriyeke', 'w'], 2 => ['beralîkirin', 1]], $borî);// wek 2>/dev/null an 2>nul di şêlê de
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes); - Firebird / Interbase, Recode û pêvekên WDDX ji belavkirina bingehîn têne derxistin. Ev dirêjkirin niha bi rêya PECL têne belav kirin;
- Veguheztin kategoriyê taybetmendiyên wekî operatorên sêdar ên hêlînkirî yên bê parantez, gihandina hêmanên rêzê û rêzan bi karanîna brayên çîçek ("$var{$idx}"), fonksiyona is_real() û avêtina rastîn, karanîna peyva sereke ya dêûbavê bêyî çîna dêûbav, parametre allow_url_include , array_key_exists() li ser tiştan bikar tîne.
Fonksiyonên get_magic_quotes_gpc(), get_magic_quotes_runtime(), û
hebrevc (), convert_cyr_string (), money_format (), ezmlm_hash (), restore_include_path (), ldap_control_paged_result_response (), ldap_control_paged_result (), ReflectionType::__toString().Hişyarîyek di derbarê karanîna taybetmendiyek kevnar de hate peyda kirin dema ku hewl didin ku sembolên çewt di fonksiyonan de bişopînin.
base_convert(), bindec(), octdec() û hexdec(), û dema ku di mb_ereg_replace() de şablonek ne-string diyar dike.
Source: opennet.ru
