Інші зміни
Зауваження та попередження під час виконання арифметичних операцій з некоректними рядками
Нові помилки рівнів E_WARNING
і E_NOTICE
були додані при використанні некоректних рядків з операторами, які чекають на число (+
-
*
**
%
<<
>>
&
^
) та їх еквівалентами з присвоєнням. Помилка рівня E_NOTICE
видається, коли рядок починається з цифр, але далі містить цифрові символи, і помилка рівня E_WARNING
видається тоді, коли рядок взагалі не містить цифр.
Loading...
Результат виконання наведеного прикладу:
Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d
Попередження при переповненні вісімкової послідовності екранованої
Раніше 3-октетний вісімковий рядок переповнювався нікому нічого не повідомляючи. Тепер при переповненні буде викликана помилка рівня E_WARNING
Loading...
Результат виконання наведеного прикладу:
Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"
Исправлена несогласованность$this
В той час як $this
вважається спеціальною змінною в PHP, їй не вистачало спеціальних перевірок, що її не використовують як змінну і не визначили. Тепер використовувати $this
як користувальницьку змінну заборонено. Також заборонено надавати їй значення та використовувати у глобальному просторі імен.
Генерація ідентифікаторів сесій без хешування
Ідентифікатори сесій більше не хешуються під час створення. Разом з цим видалено такі чотири параметри з ini-файлу:
session.entropy_file
session.entropy_length
session.hash_function
session.hash_bits_per_character
І додані два інші:
session.sid_length
- Визначає довжину ідентифікатора сесії. За промовчанням використовується 32 символи для забезпечення зворотної сумісності.session.sid_bits_per_character
- Визначає кількість біт на кожен символ ідентифікатора (тобто можна збільшити кількість доступних для використання в ідентифікаторі символів). Для зворотної сумісності за замовчуванням використовується 4 біти.
Зміни в обробці INI-файлів
precision
Якщо встановлено -1, то буде використано режим dtoa. Значення за промовчанням 14.
serialize_precision
Якщо встановлено -1, то буде використано режим dtoa. Тепер значення за промовчанням -1.
gd.jpeg_ignore_warning
Значення за промовчанням для цієї настройки php.ini змінено на 1, так що за замовчуванням попередження libjpeg будуть ігноруватися.
opcache.enable_cli
У PHP 7.1.2 значення за промовчанням для цієї настройки php.ini змінено на 1 (ввімкнено), а в PHP 7.1.7 повернуто значення 0 (вимкнено)
Генерація ідентифікаторів сесій лише за допомогою CSPRNG
Ідентифікатори сесій тепер створюються лише за допомогою CSPRNG.
Більш інформативне повідомлення TypeError, якщо допустимо null
Теперь исключениеTypeError для перевірок типу arg_info надає більш інформативне повідомлення про помилку. Якщо тип параметра або значення, що повертається, може бути null
(либо имеет значение**null
** за замовчуванням або має тип, що обнулюється), то тепер у повідомленні буде згадано "must be ... or null" або "must ... or be null."