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

ثابت‌ها (PHP Constants)

30 دقیقه Article

ثابت‌ها: ارزش‌هایی که هرگز تغییر نمی‌کنند 💎🛡️

ثابت‌ها (Constants) مانند متغیرها هستند، با این تفاوت که پس از یک بار تعریف شدن، نه می‌توان مقدارشان را تغییر داد و نه می‌توان آن‌ها را حذف کرد. آن‌ها بهترین گزینه برایِ ذخیره‌یِ تنظیمات (مثل آدرس دیتابیس) هستند.

نحوه تعریفِ ثابت:

دو راهِ اصلی برایِ تعریفِ ثابت وجود دارد:

  1. تابعِ define(): آشناترین روش.
  2. کلیدواژه‌یِ const: روشِ مدرن‌تر که داخلِ کلاس‌ها هم استفاده می‌شود.
{code_block('define("DB_NAME", "parsrepo");\nconst VERSION = "1.0.0";')}

قوانینِ طلاییِ ثابت‌ها:

  • ثابت‌ها (برخلاف متغیرها) علامتِ $ ندارند.
  • نامِ آن‌ها طبقِ قرارداد همیشه با حروفِ بزرگ نوشته می‌شود.
  • یک ثابت همه‌جا (Global) در دسترس است و نیازی به کلمه کلیدی global ندارد.
تفاوتِ کلیدی: دستورِ const در زمانِ کامپایل (Compile-time) مقدار می‌گیرد، در حالی که define() در زمانِ اجرا (Runtime). به همین دلیل، نمی‌توانید از const داخلِ بلاک‌هایِ if استفاده کنید.
آرایه‌هایِ ثابت: در PHP 7 به بعد، می‌توانید کلِ یک آرایه را به عنوانِ یک ثابت تعریف کنید.

استفاده از ثابت:

{code_block('define("GREETING", "سلام!");\necho GREETING;')}
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️

در سطوحِ حرفه‌ای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینه‌سازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاس‌پذیر را رقم می‌زند.

۱. بهینه‌سازیِ محاسبات با BCMath

در سیستم‌هایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونه‌ای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشته‌ای انجام می‌دهد تا حتی یک ریال هم در محاسبات جابجا نشود.

۲. ساختارِ HashTable در آرایه‌ها

آرایه‌ها در PHP برخلافِ بسیاری از زبان‌ها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه می‌کنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت می‌کند تا سرعتِ دسترسی به داده‌ها در حالتِ میانگین O(1) باقی بماند.

۳. مفهومِ Closures و کپسوله‌سازی

توابعِ بی‌نام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، می‌توانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.

نکته طلایی: همیشه برایِ شرط‌هایِ پیچیده از Early Return استفاده کنید. به جایِ تودرتو کردنِ ifها، ابتدا حالت‌هایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تعریفِ نامِ سایت Easy
سوال تمرین

یک ثابت به نام SITE_NAME با مقدار "ParsCode" تعریف کنید و آن را چاپ کنید.

پاسخ تمرین
PHP
<?php
define("SITE_NAME", "ParsCode");
echo SITE_NAME;
?>

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

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