Мерія

Мерія

Навчальна вправа

Вступ

Оголошення типів

Оголошення типів у PHP забезпечують перевірку типів під час виконання для аргументів функцій, повернених значень і властивостей класу. У функціях можна додати тип повернення void, щоб указати, що функція не повертає жодного значення. Оголошені типи також слугують перевіркою під час виконання, що функції повертають належно типізований результат.

<?php

class Driver
{
    private int $serial_number;

    public function setSerialNumber(int $number): void
    {
        $this->serial_number = $number;
    }

    public function getSerialNumber(): int
    {
        return $this->serial_number; 
    }
}

$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError

Обʼєднання типів

Якщо аргумент функції, повернене значення або властивість класу можуть мати більше ніж один тип, можна оголосити обʼєднання типів.

<?php

class IdentityCard
{
    private int|null $id = null;

    public function assign(int|float $id): void
    {
        $this->id = intval($id);
    }
}

$card = new IdentityCard();
$card->assign(5.0);

Змішані типи

Працюючи з кодом, ми не завжди можемо вказати тип. Починаючи з PHP 8.0, надається тип-лазівка з назвою mixed. mixed еквівалентний обʼєднанню типів object|resource|array|string|float|int|bool|null.

Вказівки

Ми вже деякий час працюємо в міській установі й розробили набір інструментів, які прискорюють нашу щоденну роботу, наприклад із заповненням форм.

Тепер до нас приєднується новий колега, і ми зрозуміли, що наші інструменти можуть потребувати пояснень. У нашій установі багато дивних правил: наприклад, завжди заповнювати форми великими літерами і не залишати поля порожніми.

Першим кроком ми вирішуємо додати оголошення типів PHP, щоб нашому новому колезі було легше одразу включитися в роботу і почати користуватися нашими інструментами.

1. Оголосіть типи для класу Address

Додайте оголошення типів до кожної оголошеної властивості класу Address. Кожну властивість класу слід оголосити як рядок тексту (англ. string).

2. Оголосіть типи для заповнення форми порожніми значеннями

Додайте оголошення типу параметра й оголошення типу поверненого значення до методу blanks класу Form. Метод має приймати ціле число (довжину) і повертати рядок тексту, який є поданням лінії для заповнення.

3. Оголосіть тип для розбиття значення на окремі літери

Додайте оголошення типу параметра й оголошення типу поверненого значення до методу letters класу Form. Метод має приймати рядок тексту, що представляє слова, і повертати масив літер.

4. Оголосіть тип для перевірки, чи вміститься значення у форму

Додайте оголошення типів параметрів та оголошення типу поверненого значення до методу checkLength класу Form. Метод має приймати слово як рядок тексту і ціле число (максимальну довжину) та повертати значення правда або неправда.

5. Оголосіть тип для форматування адреси у формі

Додайте оголошення типу параметра, скориставшись оновленим раніше класом Address, та оголошення типу поверненого значення до методу formatAddress класу Form. Метод має приймати Address і повертати відформатований рядок тексту.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
PHP Exercism

Час розпочати Мерія?

Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій122 вправи та справжнє наставництво від людей, і все це безкоштовно.