مثال:
// Property
public int $number;
// Const
public const int MAX_LIMIT = 100;
// Function and Method params:
function sum(int $a, int $b){}
// Return type:
function sum($a, $b): int {
}
انواع Type Declarations:
انواع پایهای (Scalar Types):
این انواع، سادهترین نوعها در PHP هستند که شامل موارد زیر میشوند:
int برای اعداد صحیح (integer).
float برای اعداد اعشاری (floating-point numbers).
string برای رشتهها.
bool برای مقادیر بولی (true یا false).
false برای مقدار همیشه fasle.
true برای مقدار همیشه true.
function addNumbers(int $a, int $b): int {
return $a + $b;
}انواع ترکیبی (Compound Types):
این نوعها ترکیبی از انواع مختلف هستند:
array برای آرایهها.
object برای اشیاء.
callable برای تابعهایی که میتوان آنها را فراخوانی کرد (مانند closure ها، نام توابع به صورت رشته، و غیره).
iterable برای انواعی که قابل تکرار (iteration) هستند، شامل آرایهها و اشیاء که از Traversable پیروی میکنند.
function getValues(array $input): iterable {
return new ArrayIterator($input);
}انواع خاص (Special Types):
mixed نوعی که میتواند هر چیزی باشد.
void برای توابعی که مقداری برنمیگردانند.
null برای مشخص کردن یک مقدار null.
never نوعی که نشان میدهد تابع هرگز برنمیگردد (معمولاً برای توابعی که با exit() یا پرتاب استثناها (Exception) خاتمه مییابند).
function doNothing(): void {
// This function does not return any value.
}
function terminate(): never {
exit("Terminating...");
}انواع کلاسها و اینترفیسها (Class/Interface Types):
شما میتوانید از نام کلاسها یا اینترفیسها به عنوان نوع پارامتر یا نوع مقدار بازگشتی استفاده کنید. این کار باعث میشود که پارامترها یا مقادیر بازگشتی باید از آن کلاس یا اینترفیس باشند.
class User {
// Class code
}
function setUser(User $user) : User{
// Operation on $user
}انواع نالپذیر (Nullable Types):
با افزودن یک علامت
? قبل از نوع، میتوانید یک نوع را نالپذیر کنید، به این معنا که مقدار میتواند از نوع مشخص شده یا null باشد.function findUser(?int $id): ?User {
if ($id === null) {
return null;
}
// Search for the user and return the User object
}انواع ترکیبی منطقی (Union Types):
میتوانید از ترکیب چند نوع با استفاده از
| استفاده کنید. این به شما اجازه میدهد که یک پارامتر یا مقدار بازگشتی بتواند یکی از چندین نوع مختلف باشد.function processInput(int|string $input) {
if (is_int($input)) {
// Int processing
} else {
// String processing
}
}انواع متقاطع (Intersection Types):
این نوع به شما اجازه میدهد که یک پارامتر یا مقدار بازگشتی ترکیبی از چندین نوع مختلف (همزمان) باشد. این نوع زمانی استفاده میشود که یک شیء باید همزمان از چندین اینترفیس پیروی کند.
function handleInput(A&B $input) {
// $input must be of type A and B at the same time.
}self و parent و static :
self برای اشاره به کلاس فعلی.
parent برای اشاره به کلاس والد (در صورت وجود).
static به یک کلاس خاص اشاره کند، به کلاس فعلی یا کلاسی که از آن ارثبری شده است اشاره میکند.
class Base {
public function getClass(): static {
return $this;
}
}🔖 #PHP, #پی_اچ_پی
👤 AmirHossein
💎 Channel: @DevelopixPHP