Довідковий матеріал з основних мов програмування і верстки сайтів.
Готова методика створення простих і складних динамічних сайтів, з використанням PHP і MySQL.
Розробка веб-сайтів під "ключ".
Розробка окремих фрагментів сайтів, консультації з питань верстки веб-сторінок і веб-програмування.
Веб-інструмент
Веб-майстерня
Веб-послуги
Веб-графіка
Веб-ресурси
Хочете бути в курсі подій, що відбуваються на сайті? Підпишіться на отримання останніх новин та статей.
Подивіться в Google
Власні функції. параметри функції
Реальна сила мови програмування пов'язана з можливістю створення власних функцій.
Функції, вбудовані в РНР, дозволяють взаємодіяти з файлами, використовувати бази даних, створювати графічні зображення і підключатися до інших серверів. Однак вам доведеться зіткнутися з багатьма випадками, коли потрібно виконувати дії, не передбачені творцями мови.
На щастя, рамки програміста не обмежуються вбудованими функціями, оскільки для виконання поставлених перед ним завдань можна створювати свої власні функції. Мабуть, створюваний код буде представляти собою деяку суміш завдання. Якщо ви пішіьте блок коду рішення деякої задачі, який, швидше за все, доведеться багаторазово використовувати в сценарії або сценаріях, має сенс перетворити цей блок в функцію.
Базова структура функції
echo 'Викликана моя функція';
Виклик цієї функції призведе до відображення тексту.
Вбудовані функції доступні для всіх РНР-сценаріїв, але якщо ви оголосите свої власні функції, то вони доступні тільки для сценаріїв, в яких вони оголошені. Має сенс завести окремий файл і помістити в нього все зазвичай використовуються функції. Тоді в кожен зі своїх сценаріїв ви можете за допомогою оператора require () отримати доступ до цих функцій.
Викликана моя функція
Зверніть увагу на те, що РНР-код укладений між відповідними відкриває і закриває РНР-дескрипторами.
іменування функцій
Найважливіше прівиборе імені функції полягає в тому, щоб це ім'я було коротким і несло відповідну смислове навантаження. Якщо функція створює заголовок сторінки, відповідним ім'ям може бути pageheader () або page_header ().
На імена функцій накладаються наступні обмеження:
- Функція не може мати те ж ім'я, що у існуючої функції.
- Ім'я функції може містити тільки букви, цифрах і символи підкреслення.
- Ім'я функції не може починатися з цифри.
Багато мови програмування допускають багаторазове використання імен функцій. Це властивість називається перевантаженням функцій. РНР не підтримує перевантаження функцій, тому функція не може мати ім'я, що збігається з ім'ям будь-якої вбудованої або існуючої функції, яка визначається користувачем. Майте на увазі, що хоча будь-який PHP-сценарій розпізнає всі вбудовані функції, визначені користувачем функції існують тільки в тих сценаріях, в яких вони оголошені. Це означає, що ім'я функції можна повторно використовувати в іншому файлі, але це може призводити до плутанини, тому подібних ситуацій слід уникати.
Наступні імена функцій допустимі:
name ()
name2 ()
name_three () ()
name four ()
А ці неприпустимі:
5name ()
name-six ()
fopen ()
Останнє ім'я було б допустимим, якщо б воно вже не існувало.
Зверніть увагу, що хоча $ name не є допустимим ім'ям функції, наступний виклик функції:
може нормально працювати, в залежності від значення, що зберігається в $ name. Причина полягає в тому, що РНР бере значення змінної $ name. шукає функцію з ім'ям, що збігається з цим значенням, і намагається звернутися до неї. Даний тип функції носить назву функції-змінної і часто вельми корисний.
Щоб мати можливість виконувати свої завдання, більшість функцій вимагають передачі в них одного і більше параметрів. Параметр дозволяє передавати дані в функцію. Нижче наведено приклад функції, яка вимагає передачі в неї параметра. Ця функція приймає одновимірний масив і відображає його у вигляді таблиці.
Якщо викликати функцію create_table () наступним чином:
У вікні веб-браузера це буде виглядати ТАК.
Передача параметра дозволяє передати в функцію дані, які були створені поза функцією - в даному випадку, масив $ data.
Як і в разі вбудованих функцій, які визначаються користувачем функції можуть мати кілька параметрів і необов'язкові параметри. Функцію create_table () можна вдосконалити багатьма способами, але одним з них могло б бути надання користувачеві можливості вказувати рамку або інші атрибути таблиці. Нижче приведена поліпшена версія функції. Вона дуже подібна до попередньої, але дозволяє при бажанні визначати ширину рамки, відстань між осередками і спосіб заповнення осередків.
Перший параметр функції create_table1 () як і раніше обов'язковий. Наступні три - не обов'язкові, оскільки для них визначені значення за замовчуванням. Висновок, дуже схожий на попередній можна створити за допомогою наступного виклику функції create_table1 ():
У вікні веб-браузера це буде виглядати ТАК.
Якщо потрібно, щоб ці ж дані відображалися в більш просторій формі, нову функцію можна було б викликати в такий спосіб:
create_table1 ($ my_array, 3, 8, 8);
У вікні веб-браузера це буде виглядати ТАК.
Необов'язкові параметри можна передавати не все - деякі передати, а інші ігнорувати. Параметри будуть присвоюватися зліва направо.
Майте на увазі, що не можна пропускати будь-якої необов'язковий параметр - потрібно передати параметр, вказаний в списку за ним. В даному прикладі, якщо потрібно передати значення для cellspacing. доведеться передати також і значення для cellpadding. Це обмеження - причина поширених помилок програмування. У зв'язку з цим же необов'язкові параметри вказуються в кінці будь-якого списку параметрів.
Наступний виклик функції:
create_table1 ($ my_array, 3);
цілком допустимо і призведе до того, що значення змінної $ border буде встановлено рівним 3, а значення змінних $ cellpadding і $ cellspacing будуть встановлені рівними своїм значенням за замовчуванням.
Існує можливість оголошувати функції, які приймають змінну кількість параметрів. Визначити скільки параметрів передано, а також їх значення можна за допомогою допоміжних функцій func_num_args (). func_get_arg () і func_get_args ().
Для прикладу розглянемо наступну функцію:
Ця функція виводить кількість переданих їй параметрів разом з їх значеннями. Функція func_num_args () повертає кількість переданих аргументів, а функція func_get_args () - масив, що містить ці аггументи. В якості альтернативи можна отримати доступ до кожного аргументу за допомогою функції func_get_args (). передаючи їй номер необхідного аргументу. (Нумерація аргументів починається з нуля.)
- Обговорити на форумі