Бір жылдық дамудан кейін бағдарламалау тілінің шығарылымы Жаңа филиал бірқатар жаңа мүмкіндіктерді, сондай-ақ бірнеше үйлеспейтін өзгерістерді қамтиды.
Кілт PHP 7.4 нұсқасында:
- — класс сипаттары енді типтік мәлімдемелерді қамтуы мүмкін, мысалы:
сынып пайдаланушысы {
public int $id;
жалпы жол $name;
} - мән ауқымын байланыстырумен "fn(parameter_list) => expr" функция анықтамасы синтаксисі. Мысалы, "fn($x) => $x + $y" "$fn2 = функциясы ($x) пайдалану ($y) {қайтару $x + $y;}");
- "??=", ол әдепкі мәнді анықтау үшін пайдаланылуы мүмкін ("a ??= b" "a = a ?? b" ұқсас, егер "a" анықталған болса, оның мәні сақталады, ал анықталмаса "b" мәні тағайындалады);
- Шектеулі олардан алынған қайтарылатын мән түрлерінде түрлердің мұрагерлік иерархиясын сақтау немесе туынды аргумент түрлерінде бастапқы түрлердің иерархиясын керісінше түрлендіру мүмкіндігі ( қайтару түрі және аргумент түрі контрварианс). Енді PHP-де келесі конструкцияларды қолдануға болады:
А класы {}
B класы А {} кеңейтедікласс продюсері {
қоғамдық функция әдісі(): A {}
}
class ChildProducer продюсерді кеңейтеді {
қоғамдық функция әдісі(): B {}
} - «...$var» массивтерінің ішіндегі ашу операторы, жаңа массивті анықтау кезінде бар массивтерді ауыстыруды орындау;
$parts = ['алма', 'алмұрт'];
$fruits = ['банан', 'апельсин', …$бөліктер, 'қарбыз'];
// ['банан', 'апельсин', 'алма', 'алмұрт', 'қарбыз']; - үлкен сандарды сандық литералдардағы бөлгіштермен көрнекі түрде көрсету (1_000_000_00);
- Қолдау , бұл нысанға сілтемені сақтауға мүмкіндік береді, бірақ қоқыс жинағыштың байланысты нысанды алып тастауын блоктамайды;
- жаңа объектінің сериялануы (Serializable және __sleep()/__wakeup() комбинациясы), Serializable интерфейсін ауыстырады, ол ескірген деп жарияланады;
// Нысанның барлық күйлерін қамтитын массивді қайтарады;
жалпы функция __serialize(): массив;// Жиымнан нысанның күйін қалпына келтіреді
жалпы функция __unserialize(массив $деректер): void; - Ерекшеліктерді әдістен шығаруға рұқсат ету ;
- Нысан коды кэшін алдын ала жүктеуге қолдау қосылды. Конфигурация үшін жаңа параметр қосылды.
, бұл сервер іске қосылғанда құрастырылатын және іске қосылатын PHP сценарийін көрсетуге мүмкіндік береді. Бұл сценарий басқа файлдардың операциялық кодтарын оларды тікелей қосу немесе opcache_compile_file() функциясын пайдалану арқылы жүктей алады; - crc32c функциясы Castagnoli көпмүшелігін пайдаланып бақылау сомасын есептеу үшін Хэш кеңейтіміне қосылды;
- password_hash() функциясы, егер PHP либаргонсыз құрастырылған болса, Natrium кітапханасын іске асыруда argon2i және argin2id құпия сөзді хэштеу әдістерін қолдау үшін жаңартылды;
- str_split() функциясына ұқсас mb_str_split() функциясы қосылды, бірақ байттарда емес, көп байт жолындағы таңба орындарында жұмыс істейді;
- strip_tags() функциясы енді тег атауларының массивін беруге мүмкіндік береді, яғни strip_tags($str, ' ') орнына енді strip_tags($str, ['a', 'p']) көрсетуге болады;
- proc_open() іске қосылатын жолды көрсетудің орнына операндтарды массивте тізуге мүмкіндік береді, сонымен қатар ағындарды қайта бағыттау және нөлдік файл дескрипторын қолдау мүмкіндігін жүзеге асырады;
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
// Қабықтағы 2>&1 сияқты
proc_open($cmd, [1 => ['құбыр', 'w'], 2 => ['қайта бағыттау', 1]], $құбырлар);// қабықтағы 2>/dev/null немесе 2>nul сияқты
proc_open($cmd, [1 => ['құбыр', 'w'], 2 => ['null']], $құбырлар); - Firebird/Interbase, Recode және WDDX кеңейтімдері негізгі таратудан жойылды. Бұл кеңейтімдер енді PECL арқылы таратылады;
- Санатқа ауыстырылды Жақшасыз кірістірілген үштік операторлар, жиым элементтеріне және жолдарға бұйра жақшаларды ("$var{$idx}") пайдаланып қол жеткізу, is_real() функциясы және нақтыға трансляциялау, ата-аналық кілт сөзді ата-аналық сыныпсыз пайдалану, allow_url_include конфигурация опциясы және array_key_ex нысандарын пайдалану сияқты мүмкіндіктер.
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().Функциялардағы жарамсыз таңбаларды өңдеу әрекеті кезінде ескірген мүмкіндікті пайдалану туралы ескерту берілген
base_convert(), bindec(), octdec() және hexdec() және mb_ereg_replace() ішінде жолсыз үлгіні көрсеткенде.
Ақпарат көзі: opennet.ru
