Що нового в php7.1: нові повідомлення про помилки.

Що нового в PHP7.1: нові повідомлення про помилки.

Всім привіт! У цій статті ми розглянемо, як змінилися повідомлення про помилки в PHP 7.1.

Як відомо, якщо ми щось робимо не так у мові програмування PHP, то отримаємо помилку. Наприклад, якщо ми не передали в функцію необхідний аргумент, то у нас буде Fatal Error. Однак ці помилки недостатньо інформативні і їх складно сприймати. Тому в PHP 7.1 вони були змінені і поліпшені. Як то кажуть, вони стали більш User Friendly.

Відео: Служба профілів користувачів перешкоджає входу в систему

Давайте розглянемо означений вище приклад:

classUser{
publicfunction avatar($ size){
return`Avatar.jpg? S =`.$ size-
}
}

$ user
=newUser-
echo $ user
-gt;avatar() -

Як і говорилося вище, в наш метод avatar потрібно передати розмір зображення, але ми цього не робимо. В PHP 7.0 ми отримаємо наступне повідомлення:

Відео: Обробка помилок в PHP7

Warning:Missing argument 1forUser::avatar(), called in...


Повністю приводити повідомлення я не став, тому що в цьому немає особливого сенсу. Все, що нас цікавить, це те, що у нас пропущений 1 аргумент для методу avatar () в класі User.

Відео: ООП в PHP: Обробка виключень Повідомлення про помилки в PHP

Якщо ми цей же код запустимо в PHP 7.1, то отримаємо більш зрозуміле і інформативне повідомлення про помилку:

Fatal error:UncaughtArgumentCountError:Too few arguments to functionUser::avatar(),0 passed in...and exactly 1 expected in...


Як ви можете бачити, тут написано, що передано занадто мало аргументів на метод avatar () класу User, 0 пройшло на такий-то рядку (де треба було передати аргументи) і точно 1 очікувався на такий-то рядку (де написано сам метод).

Що цікаво, якщо ми додамо ще один параметр і встановимо для нього значення за замовчуванням

classUser{
publicfunction avatar($ size, $ default =`Default`){
return`Avatar.jpg? S =`.$ size-
}
}

$ user
=newUser-
echo $ user
-gt;avatar() -

то повідомлення зміниться. Воно буде виглядати так:

Відео: ОГЛЯД IOS 10.3 Release 14E277: What # 39; s new?

Fatal error:UncaughtArgumentCountError:Too few arguments to functionUser::avatar(),0 passed in...and at least 1 expected in...

Тут написано те ж саме, що і раніше, але слово exactly замінено на at least, тобто тепер повідомлення говорить нам про те, що неточно один аргумент очікується, а хоча б один. Це сталося через те, що у нас для другого параметра встановлено значення за замовчуванням, отже, ми можемо його не передавати, і тоді буде використовуватися саме воно.

Крім того, що повідомлення тепер стали більш зрозумілими і інформативними, вони ще й виглядати стали красивіше!

А на цьому сьогодні все. Дякую за увагу!

Поділися в соціальних мережах:

Схожі
Ооп проти процедурного підходу.Ооп проти процедурного підходу.
Що нового в php7.1: ключове слово void.Що нового в php7.1: ключове слово void.
Avatar 3d версій 3.1-3.2.9 для різних моделей на ос андроїд - фантастична бродилка і шутер від…Avatar 3d версій 3.1-3.2.9 для різних моделей на ос андроїд - фантастична бродилка і шутер від…
Що нового в php7.1: поліпшення обробки $ this.Що нового в php7.1: поліпшення обробки $ this.
Tasker - звукове повідомлення при непрочитаних sms або пропущений виклик на андроїдTasker - звукове повідомлення при непрочитаних sms або пропущений виклик на андроїд
Ключове слово let в es6.Ключове слово let в es6.
Reflection api. Reflectionclass.Reflection api. Reflectionclass.
Серіалізация об`єктів в php.Серіалізация об`єктів в php.
Використання tpl-файлівВикористання tpl-файлів
Основний інструмент при пошуку помилок в кодіОсновний інструмент при пошуку помилок в коді
» » Що нового в php7.1: нові повідомлення про помилки.