Інші зміни

Зауваження та попередження під час виконання арифметичних операцій з некоректними рядками

Нові помилки рівнів 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."