TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #52 2.06K
قابلیت Type Declarations (تعیین نوع) به شما این امکان را می‌دهد که نوع متغیرها، پارامترهای تابع، مقادیر بازگشتی و ویژگی‌های کلاس را مشخص کنید. این کار به افزایش استحکام کد و جلوگیری از خطاهای احتمالی در زمان اجرا کمک می‌کند.

مثال:
// 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
  • 👍 12
  • 🔥 3
  • ❤ 1
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →