Piştî salek pêşveçûn pêşkêş kirin serbestberdana zimanê bernamekirinê PHP 7.4. Şaxa nû rêzek taybetmendiyên nû vedihewîne, û her weha gelek guhertinên ku lihevhatinê dişkînin.
Taybetmendiyên tîpkirî - 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;
}
Kurtekirin 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;}");
Operatorê peywira kurtenivîsê "??=" 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 fersend 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 (covariance 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", destûr dide dema danasîna rêzek nû cîgirkirina rêzikên heyî pêk bîne;
Fersend temsîla dîtbarî ya hejmarên mezin bi veqetandekên bi tîpên jimarî (1_000_000_00);
alîkarî girêdanên qels, 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û mekanîk 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 __toString();
Piştgiriyek ji bo pêşda barkirina cache koda objektê zêde kir. Parametreya zêdekirî ji bo mîhengê opcache.preload, 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;
// 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ê kevn 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.
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.