مسیرها
/
PHP
PHP
/
تمرین‌ها
/
اداره‌ی شهر
اداره‌ی شهر

اداره‌ی شهر

تمرین یادگیری

مقدمه

اعلان نوع

اعلان‌های نوع در 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 در اختیار قرار گرفته است. نوع مختلط معادل یک نوع اتحادی از object|resource|array|string|float|int|bool|null است.

دستورالعمل‌ها

مدتی است که در اداره‌ی شهر کار می‌کنید و مجموعه‌ای از ابزارها را ساخته‌اید که کارهای روزمره‌تان را سریع‌تر می‌کنند، مثلاً هنگام پر کردن فرم‌ها.

حالا یک همکار جدید به شما ملحق می‌شود و متوجه شده‌اید که ابزارهایتان ممکن است بدون توضیح روشن نباشند. در اداره‌ی شما رسوم عجیب و غریب زیادی وجود دارد، مثل همیشه پر کردن فرم‌ها با حروف بزرگ و پرهیز از خالی گذاشتن فیلدها.

به عنوان اولین قدم تصمیم می‌گیرید اعلان‌های نوع PHP را اضافه کنید تا همکار جدیدتان راحت‌تر بتواند سریع وارد کار شود و استفاده از ابزارهای شما را شروع کند.

1. نوع‌های کلاس Address را اعلام کنید

به هر یک از ویژگی‌های اعلام‌شده‌ی کلاس Address، اعلان نوع ویژگی اضافه کنید. هر ویژگی کلاس باید به‌صورت رشته اعلام شود.

2. نوع‌ها را برای پر کردن فرم با مقادیر خالی اعلام کنید

یک اعلان نوع پارامتر و یک اعلان نوع بازگشتی به متد blanks در کلاس Form اضافه کنید. متد باید یک طول از نوع عدد صحیح دریافت کند و نمایش رشته‌ای خط خالی را برگرداند.

3. هنگام تقسیم یک مقدار به حروف جداگانه، نوع را اعلام کنید

یک اعلان نوع پارامتر و یک اعلان نوع بازگشتی به متد letters در کلاس Form اضافه کنید. متد باید یک رشته، که نماینده‌ی کلمات است، دریافت کند و آرایه‌ای از حروف را برگرداند.

4. هنگام بررسی اینکه آیا یک مقدار در فرم جا می‌شود، نوع را اعلام کنید

اعلان‌های نوع پارامتر و یک اعلان نوع بازگشتی به متد checkLength در کلاس Form اضافه کنید. متد باید یک کلمه از نوع رشته و یک حداکثر طول از نوع عدد صحیح دریافت کند و یک مقدار «درست» یا «غلط» برگرداند.

5. هنگام قالب‌بندی یک آدرس در فرم، نوع را اعلام کنید

یک اعلان نوع پارامتر، با استفاده از کلاس Address که قبلاً به‌روزرسانی شد، و یک اعلان نوع بازگشتی به متد formatAddress در کلاس Form اضافه کنید. متد باید یک Address دریافت کند و یک رشته‌ی قالب‌بندی‌شده برگرداند.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
PHP Exercism

آماده‌اید اداره‌ی شهر را شروع کنید؟

در Exercism ثبت‌نام کنید تا PHP را همراه با 11 مفهوم122 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.