دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / ثابت‌های کلاس (PHP Class Constants)

ثابت‌های کلاس (PHP Class Constants)

30 دقیقه Article

ثابت‌هایِ کلاس: مقادیرِ تغییرناپذیر 💎🔒

گاهی نیاز دارید مقادیری را در کلاس ذخیره کنید که در طولِ کلِ برنامه هرگز تغییر نمی‌کنند (مثل نرخِ مالیات یا نسخه‌یِ API). اینجاست که از const استفاده می‌کنیم.

تفاوتِ ثابت با ویژگی:

  • ثابت‌ها با کلمه کلیدی const تعریف می‌شوند.
  • به علامتِ $ نیاز ندارند.
  • به صورتِ پیش‌فرض public هستند.
  • نیاز به ساختِ شیء برایِ دسترسی ندارند (Static-like).

نحوه دسترسی (Scope Resolution Operator):

برای دسترسی به ثابتِ داخلِ کلاس، از نامِ کلاس و :: استفاده می‌کنیم.

{code_block('class Web {\n const VERSION = "1.0";\n}\necho Web::VERSION;')}
دسترسی از داخلِ کلاس: از کلمه کلیدیِ self استفاده کنید: self::VERSION.
نام‌گذاری: طبقِ استاندارد، نامِ ثابت‌ها را حتماً با حروفِ بزرگ (UPPERCASE) بنویسید تا با متغیرها اشتباه نشوند.

تغییرِ سطحِ دسترسی:

در PHP 7.1 به بعد، می‌توانید ثابت‌ها را private یا protected هم بکنید!

<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: معماریِ پیشرفته و مهندسیِ اشیاء 🐘💎

برنامه‌نویسیِ شیءگرا در PHP پس از نسخه‌یِ ۷ و ۸ تغییراتِ بنیادینی داشته و به ابزاری بسیار قدرتمند برایِ ساختِ سیستم‌هایِ پیچیده تبدیل شده است.

۱. ساختارِ حافظه و Object Handles

در PHP، متغیرهایی که حاویِ یک شیء هستند، خودِ شیء را ذخیره نمی‌کنند؛ بلکه یک Identifier یا دستگیره (Handle) را نگه می‌دارند که به جدولِ اشیاءِ درونیِ موتورِ Zend Engine اشاره می‌کند. به همین دلیل است که وقتی یک شیء را به تابعی پاس می‌دهید، تغییرات در همان شیءِ اصلی اعمال می‌شود (شبه‌ارجاع).

۲. رعایتِ اصولِ SOLID

در طراحیِ کلاس‌ها، همیشه به اصلِ Single Responsibility پایبند باشید. یک کلاس باید فقط یک دلیل برایِ تغییر داشته باشد. استفاده از Interfaces به شما اجازه می‌دهد وابستگی‌هایِ کدتان را به حداقل برسانید (Dependency Inversion).

۳. کدهایِ JIT-Friendly

موتورِ JIT در PHP 8 کدها را به زبانِ ماشین تبدیل می‌کند. نوشتنِ کدهایِ شیءگرا با ساختارِ مشخص و استفاده از Property Typing به JIT کمک می‌کند تا کدهایِ شما را بسیار بهینه‌تر اجرا کند.

نکته مهندسی: همیشه از Strict Types استفاده کنید. این کار باعث می‌شود خطاهایِ منطقی در زمانِ توسعه پیدا شوند و از رفتارهایِ پیش‌بینی‌نشده در هنگامِ کار با متدها جلوگیری شود.
تعریفِ ثابت Easy
سوال تمرین

داخلِ کلاسِ Config، یک ثابت به نام VER با مقدار 2.0 بسازید.

پاسخ تمرین
PHP
<?php
class Config {
  const VER = 2.0;
}
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.

برای ذخیره پیشرفت وارد شوید