اعلانهای نوع در 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 را اضافه کنید تا همکار جدیدتان راحتتر بتواند سریع وارد کار شود و استفاده از ابزارهای شما را شروع کند.
Address را اعلام کنیدبه هر یک از ویژگیهای اعلامشدهی کلاس Address، اعلان نوع ویژگی اضافه کنید.
هر ویژگی کلاس باید بهصورت رشته اعلام شود.
یک اعلان نوع پارامتر و یک اعلان نوع بازگشتی به متد blanks در کلاس Form اضافه کنید.
متد باید یک طول از نوع عدد صحیح دریافت کند و نمایش رشتهای خط خالی را برگرداند.
یک اعلان نوع پارامتر و یک اعلان نوع بازگشتی به متد letters در کلاس Form اضافه کنید.
متد باید یک رشته، که نمایندهی کلمات است، دریافت کند و آرایهای از حروف را برگرداند.
اعلانهای نوع پارامتر و یک اعلان نوع بازگشتی به متد checkLength در کلاس Form اضافه کنید.
متد باید یک کلمه از نوع رشته و یک حداکثر طول از نوع عدد صحیح دریافت کند و یک مقدار «درست» یا «غلط» برگرداند.
یک اعلان نوع پارامتر، با استفاده از کلاس Address که قبلاً بهروزرسانی شد، و یک اعلان نوع بازگشتی به متد formatAddress در کلاس Form اضافه کنید.
متد باید یک Address دریافت کند و یک رشتهی قالببندیشده برگرداند.