टाइप गरिएका गुणहरू - वर्ग गुणहरू अब प्रकार घोषणाहरू समावेश गर्न सक्छन्, उदाहरणका लागि:
वर्ग प्रयोगकर्ता {
सार्वजनिक int $id;
सार्वजनिक स्ट्रिङ $name;
}
संक्षिप्त "fn(parameter_list) => expr" कार्यहरू परिभाषित गर्नका लागि सिन्ट्याक्स मानद्वारा स्कोप बाइन्डिङको साथ। उदाहरण को लागी, "fn($x) => $x + $y" "$fn2 = प्रकार्य ($x) प्रयोग ($y) {रिटर्न $x + $y;}" सँग मिल्दोजुल्दो छ);
शर्टह्यान्ड असाइनमेन्ट अपरेटर "??=" जुन पूर्वनिर्धारित मान परिभाषित गर्न प्रयोग गर्न सकिन्छ ("a ??= b" "a = a ?? b" सँग मिल्दोजुल्दो छ, यदि "a" परिभाषित गरिएको छ भने यसको मान भण्डारण गरिन्छ, र यदि परिभाषित गरिएन भने। मान तोकिएको छ "b");
सीमित मौका व्युत्पन्न रिटर्न प्रकारहरूमा प्रकारहरूको विरासत पदानुक्रम संरक्षण गर्दै, वा व्युत्पन्न तर्क प्रकारहरूमा मूल प्रकारहरूको पदानुक्रमलाई उल्टाउने क्षमता (सहप्रसरण फिर्ता प्रकार र तर्क प्रकार विरोधाभास)। निम्न निर्माणहरू अब PHP मा प्रयोग गर्न सकिन्छ:
कक्षा ए {}
कक्षा बी विस्तार गर्दछ A {}
वर्ग निर्माता {
सार्वजनिक कार्य विधि(): A {}
}
वर्ग बालउत्पादकले उत्पादक विस्तार गर्दछ {
सार्वजनिक कार्य विधि(): B {}
}
एरे भित्र अपरेटर अनप्याक गर्दै "...$var", अनुमति दिँदै नयाँ एरे परिभाषित गर्दा अवस्थित arrays को प्रतिस्थापन गर्नुहोस्;
वस्तु कोड क्यास प्रिलोड गर्न समर्थन थपियो। सेटिङका लागि प्यारामिटर थपियो opcache.preload, जसको माध्यमबाट तपाईले PHP स्क्रिप्ट निर्दिष्ट गर्न सक्नुहुन्छ जुन कम्पाइल हुनेछ र सर्भर सुरु हुँदा चल्नेछ। यो स्क्रिप्टले अन्य फाइलहरूको अपकोडलाई तिनीहरूको प्रत्यक्ष समावेश मार्फत वा opcache_compile_file() प्रकार्य प्रयोग गरेर लोड गर्न सक्छ;
В расширение Hash добавлена функция crc32c для вычисления контрольных сумм с использованием полинома Кастаньоли;
पासवर्ड ह्यासिङ विधिहरू argon2i र argin2id को लागि password_hash() प्रकार्यमा समर्थन थपियो, सोडियम पुस्तकालयको कार्यान्वयनमा, यदि PHP libargon बिना निर्माण गरिएको छ;
थपिएको प्रकार्य mb_str_split(), str_split() सँग मिल्दोजुल्दो, तर बाइटहरूसँग होइन तर बहु-बाइट स्ट्रिङमा क्यारेक्टर पोजिसनहरूसँग सञ्चालन हुन्छ;
strip_tags() प्रकार्यमा अब ट्याग नामहरूको साथ एरे पास गर्ने क्षमता छ, अर्थात्। strip_tags($str, ' ') को सट्टा अब तपाईले strip_tags($str, ['a', 'p'] निर्दिष्ट गर्न सक्नुहुन्छ);
proc_open() ले अपरेन्डहरूलाई स्ट्रिङ चलाउनको सट्टा एरेमा सूचीबद्ध गर्न अनुमति दिन्छ, र नल फाइल वर्णनकर्ताको लागि थ्रेड रिडिरेक्शन र समर्थन पनि प्रदान गर्दछ;
// like 2>/dev/null or 2>nul in shell
proc_open($cmd, [1 => ['पाइप', 'w'], 2 => ['null']], $pipes);
Firebird/Interbase, Recode र WDDX विस्तारहरू आधारभूत वितरणबाट बहिष्कृत छन्। यी विस्तारहरू अब PECL मार्फत वितरित छन्;
श्रेणीमा स्थानान्तरण गरियो पुरानो कोष्ठकहरू बिना नेस्टेड टर्नरी अपरेटरहरू, कर्ली ब्रेसेस (“$var{$idx}”) प्रयोग गरेर एरे तत्वहरू र स्ट्रिङहरू पहुँच गर्ने, is_real() प्रकार्य र वास्तविकमा कास्ट गर्ने, अभिभावक वर्ग बिना अभिभावक कुञ्जी शब्द प्रयोग गर्ने, प्यारामिटर allow_url_include कन्फिगरेसनहरू जस्ता सुविधाहरू। , वस्तुहरूमा array_key_exists() प्रयोग गर्दै।
कार्यहरूमा गलत प्रतीकहरू प्रशोधन गर्ने प्रयास गर्दा एक अप्रचलित सुविधाको प्रयोगको बारेमा चेतावनी प्रदान गरिएको छ।
base_convert(), bindec(), octdec() र hexdec(), र mb_ereg_replace() मा गैर-स्ट्रिङ ढाँचा निर्दिष्ट गर्दा।