Застаріла функціональність
Ядро PHP
Вкладені тернарні оператори без явної вказівки дужок
У вкладених тернарних операціях повинні використовуватися круглі дужки, щоб визначити порядок операцій. Раніше, якщо дужки явно не задані, здебільшого ліва асоціативність не призводила до очікуваної поведінки.
Loading...
Дужки не потрібні при вкладенні в середній операнд, оскільки це завжди однозначно і не залежить від асоціативності:
Loading...
Звернення до індексу масиву та рядки через фігурні дужки
Синтаксис доступу до масиву та рядка з використанням фігурних дужок оголошено застарілим. Використовуйте $var[$idx]
замість $var{$idx}
Приведення типу (real) та функція is_real()
Приведение типа(real)
оголошено застарілим, натомість використовуйте (float)
Функцияis_real() також оголошено застарілою, замість неї використовуйте is_float()
Отмена привязки$this
при использовании$this
Отмена привязки$this
у нестатичному замиканні, яке використовує $this
, оголошено застарілою.
Ключевое словоparent
поза батьківським класом
Использованиеparent
усередині класу, який не має батька, оголошено застарілим, а в майбутньому відбудеться помилка компіляції. А поки що помилка буде тільки при зверненні до батька під час виконання.
INI-опція allow_url_include
Конфігураційна директива allow_url_include оголошено застарілою. При ввімкненій опції буде викликано повідомлення про застарілі можливості під час завантаження.
Неприпустимі символи в основних функціях перетворення
Передача неприпустимих символів base_convert() bindec() octdec() тепер викликає повідомлення про застарілі можливості. Результат все одно буде обчислений так, якби неприпустимих символів не було. Провідні та завершальні прогалини, а також префікси типу 0x (залежно від системи числення), як і раніше, дозволені.
Использованиеarray_key_exists() з об'єктом
Использованиеarray_key_exists() з об'єктом оголошено застарілим. Натомість слід використовувати або isset(), либоproperty_exists()
Функції, пов'язані з чарівними лапками
Функції get_magic_quotes_gpc() і get_magic_quotes_runtime() оголошено застарілими. Вони завжди повертають false
Функцияhebrevc()
Функцияhebrevc() оголошено застарілою. Її можна замінити на вираз nl2br(hebrev($str))
, або краще використовувати підтримку Unicode RTL.
Функцияconvert_cyr_string()
Функцияconvert_cyr_string() оголошено застарілою. Її можна замінити або на mb_convert_string(), либоiconv()или на классUConverter
Функцияmoney_format()
Функцияmoney_format() оголошено застарілою. Вона може бути замінена функціональністю інтернаціоналізації – класом NumberFormatter
Функцияezmlm_hash()
Функцияezmlm_hash() оголошено застарілою.
Функцияrestore_include_path()
Функцияrestore_include_path() оголошено застарілою. Її можна замінити на ini_restore('include_path')
Використання implode з нерекомендованим порядком параметрів
Передача параметров вimplode() у зворотному порядку оголошено застарілою - використовуйте implode($glue, $parts)
замість implode($parts, $glue)
COM
Імпорт бібліотек типів із реєстрацією констант без урахування регістру оголошено застарілим.
Фільтрування
Фильтр**FILTER_SANITIZE_MAGIC_QUOTES
** оголошено застарілим, замість нього використовуйте FILTER_SANITIZE_ADD_SLASHES
Багатобайтові рядки
Передача нестрокового шаблона вmb_ereg_replace() оголошено застарілою. На даний момент нерядкові значення інтерпретуються як кодові точки ASCII. У PHP 8 шаблон буде оброблятися як рядок.
Передача кодування як 3-й параметр в mb_strrpos() оголошено застарілою. Натомість передавайте позицію як 0, а кодування у 4-му параметрі.
Полегшений протокол доступу до каталогів (LDAP)
Функції ldap_control_paged_result_response() і ldap_control_paged_result() оголошено застарілими. Для керування посторінковим режимом використовуйте функцію ldap_search()
Reflection
Виклики ReflectionType::__toString() тепер створюють повідомлення про застарілі можливості. Цей метод оголошено застарілим на користь використання ReflectionNamedType::getName() у документації з PHP 7.1, але не видавав відповідного повідомлення з технічних причин.
Методи export()
у всех классовReflection оголошено застарілими. Тепер створюйте об'єкт Reflectionи преобразуйте его в строку:
Loading...
Сокети
Флаги**AI_IDN_ALLOW_UNASSIGNED
** і **AI_IDN_USE_STD3_ASCII_RULES
** для функції socket_addrinfo_lookup() оголошено застарілими через оновлення glibc.