nmk

Лабораторна робота №4 (2 години)

Тема: Форматування даних власними функціями. Написання власних функцій для обробки та обрізання тексту або виведення дати в українському форматі.

Мета: Зрозуміти принципи декомпозиції коду, навчитись створювати власні функції для розв’язання повторюваних завдань форматування даних та використання локальної області видимості.

Технологічний стек: PHP, вбудовані функції обробки рядків, концепція принципів DRY (Don’t Repeat Yourself).

Завдання

  1. Вивчити синтаксис створення користувацьких функцій (function).
  2. Написати функцію formatTitle(), яка буде форматувати довгі заголовки.
  3. Написати функцію getCurrentDate(), яка повертатиме поточну дату в українському форматі.
  4. Застосувати ці функції у раніше створеній HTML-розмітці під час виведення змінних.

Хід виконання роботи

Крок 1. Створення функції форматування назви

У вашому файлі додатку оголосіть функцію formatTitle($text, $maxLength = 20). За допомогою вбудованої PHP-функції strlen() перевірте, чи перевищує довжина тексту ($text) вказану межу ($maxLength). Якщо перевищує — використайте substr() для обрізання рядка до $maxLength символів та додайте ... (три крапки) у кінець за допомогою конкатенації (.). У протилежному випадку поверніть оригінальний текст. Обов’язково використовуйте ключове слово return для повернення результату з функції в місці її виклику.

Крок 2. Робота з датами та функція локалізації

За замовчуванням формат дат у PHP англомовний (наприклад, Monday, October 12). Ознайомтесь із вбудованою функцією date(). Створіть функцію getCurrentGreeting(). Всередині неї отримайте поточну годину (0-23) за допомогою date('H'). Напишіть умову:

Крок 3. Застосування результату

У верхній частині сайту (в <header>) вбудуйте результат виклику функції привітання: <?= getCurrentGreeting() ?>. Для назви вашого тестового завдання викличте функцію скорочення тексту: <?= formatTitle($taskTitle) ?>. Задайте довгу назву для вашої змінної $taskTitle, щоб візуально перевірити, чи працює обрізання.

Контрольні запитання

  1. Поясніть принцип “DRY” (Don’t Repeat Yourself) та як власні функції допомагають його дотримуватись.
  2. Що таке аргументи функції та що таке параметри за замовчуванням? Наведіть приклад з коду.
  3. Що станеться, якщо у функції не написати конструкцію return, але спробувати присвоїти результат її виклику в змінну x ($x = myFunc())? Яке значення буде в $x?
  4. Що таке “область видимості” (scope) змінної? Чи можна у тілі функції звернутись до $taskTitle, створеної за межами цієї функції, без ключового слова global?
  5. Для чого призначена вбудована функція substr() і які вона умовно приймає аргументи?

Вимоги до звіту

  1. Усі зміни повинні бути вчасно збережені (commit -> push) у ваш репозиторій на GitHub.
  2. У Markdown-звіті lab4.md виділіть блок коду із тілом створених вами функцій (formatTitle та getCurrentGreeting).
  3. Додайте скриншот результату з відрендереним привітанням та успішно обрізаним текстом (...) у Task Manager.
  4. Написати в lab4.md детальні пояснення-відповіді на всі 5 контрольних питань.