Page 44 - 4636
P. 44
Як правило, повідомлення про помилки виводяться РНР, містять корисну інформацію. Таке
повідомлення точно вказує ім'я і рядок сценарію, де була допущена помилка, а також ім'я функції, яку
ви намагалися викликати. Ця інформація має суттєво спростити пошук і усунення проблеми.
Отримавши повідомлення про помилку, ви повинні перевірити два моменти:
1. Чи правильно вказано ім'я функції?
2. Чи існує зазначена в повідомленні функція у версії РНР?
Не завжди легко запам'ятати, як правильно пишеться назва функції. Наприклад, деякі імена
функцій, які складаються з двох слів, містять символ підкреслення між словами, а деякі - ні. Так, в
імені функції stripslashes() два слова злиті в одне, в той час як в імені функції strip_tags()
вони розділені символом підкреслення. Неправильне ведення імені функції у виклику призводить до
помилки.
Деякі з використаних у лекції функцій відсутні у версії РНР4, оскільки ми припускаємо, що
застосовується, принаймні, версія РНР5. У кожній новій версії з'являються нові функції, і якщо ви
працюєте з однією з ранніх версій РНР, то додаткові можливості і більш висока продуктивність є
стимулом до модернізації програмного забезпечення. Якщо ви хочете з'ясувати, коли з'явилася та чи
інша функція, можете навести відповідні довідки в онлайновому керівництві. Спроба виклику функції,
яка не оголошена в використовуваній вами версії, приведе до появи повідомлення про помилку.
Ще одна причина отримання такого повідомлення про помилку пов'язана з тим, що викликається
функція є частиною PHP-розширення, яка не завантажена. Наприклад, якщо ви спробуєте
скористатися функціями бібліотеки роботи з зображеннями gd, а вона не була встановлена, ви
побачите повідомлення про помилку.
Регістр символів та імена функцій
Зверніть увагу, що імена функцій не чутливі до регістру, тому будь-яке з звернень
function_name(),Function_Name () або FUNCTION_NAME() є допустимим і призводить до
одного і того ж результату. Великі літери можна використовувати в імені функції будь-яким чином,
який, на вашу думку, полегшує читання, але при цьому все ж слід прагнути до якоїсь цілісності. У цій
лекції і в більшої частини документів з РНР прийнято застосовувати рядкові літери.
Важливо відзначити, що імена функцій ведуть себе інакше, ніж імена змінних. Імена змінних
чутливі до регістру, і тому $Name і $name - це різні змінні, тоді як Name() і name() - одна і та ж
функція.
Визначення власних функцій
У попередніх лекціях ви ознайомилися з багатьма прикладами використання деяких вбудованих
функцій РНР. Однак реальна сила мови програмування пов'язана з можливістю створення власних
функцій.
Функції, вбудовані в РНР, дозволяють взаємодіяти з файлами, використовувати бази даних,
створювати графічні зображення і підключатися до інших серверів. Однак вам доведеться зіткнутися з
багатьма випадками, коли доведеться виконувати дії, не передбачені творцями мови.
На щастя, ви не обмежені вбудованими функціями, оскільки для виконання поставлених перед вами
завдань, можна створювати свої власні функції. Мабуть, створюваний код буде являти собою деяку
суміш існуючих функцій та спеціалізованої логіки вирішення того чи іншого завдання. Якщо ви
пишете блок коду для рішення деякої конкретного заадання, який, швидше за все, доведеться
багаторазово використовувати в декількох місцях сценарію або навіть удекількох сценаріях, то має
сенс організувати цей блок у вигляді функції.
Оголошення функції дозволяє використовувати створений код так само, як і вбудовані функції. Ви
просто викликаєте цю функцію і передаєте їй всі необхідні параметри. Це означає, що одну й ту ж
функцію ви можете багаторазово викликати і використовувати у своєму сценарії.
Базова структура функції
Оголошення функції створює, або оголошує (declare), нову функцію. Оголошення починається
з ключового слова function, воно присвоює ім'я функції, задає необхідні параметри і містить код,
який виконується при кожному виклику функції.
Оголошення найпростішої функції має приблизно такий вигляд:
41