ثابتها (Constants) در پی اچ پی و تفاوت با متغیرها
در مقالات قبلی سایت پی اچ پی ساز (بخش نصب و سینتکس پایه)، آموختیم که متغیرها ظرفهایی برای ذخیره اطلاعات هستند که مقدار آنها میتواند در طول اجرای برنامه تغییر کند. اما در پروژههای برنامهنویسی، گاهی اوقات به مقادیری نیاز داریم که از ابتدا مشخص هستند و نباید تحت هیچ شرایطی در طول اجرای اسکریپت تغییر کنند؛ مقادیری مانند نام سایت، آدرس دامنه اصلی، تنظیمات اتصال به دیتابیس یا کلیدهای امنیتی.
در زبان PHP برای ذخیره اینگونه اطلاعات ثابت، از مفهومی به نام ثابتها (Constants) استفاده میشود. در این مقاله به بررسی نحوه تعریف و استفاده از ثابتها و تفاوتهای کلیدی آنها با متغیرها میپردازیم.
ثابت (Constant) چیست؟
ثابت معرف نامی برای یک مقدار ساده است. همانطور که از نام آن پیداست، پس از اینکه یک ثابت تعریف شد، مقدار آن دیگر در هیچ جای دیگری از برنامه قابل تغییر یا بازنویسی نیست.
برای تعریف ثابت در PHP دو روش اصلی وجود دارد:
۱. استفاده از تابع define()
۲. استفاده از کلمه کلیدی const
روش اول: استفاده از تابع define()
این روش سنتیتر است و به شما اجازه میدهد ثابتها را در هر جایی از برنامه (حتی درون توابع یا شرطها) تعریف کنید.
سینتکس:
<?php
define("SITE_NAME", "پی اچ پی ساز");
define("BASE_URL", "https://phpsaz.ir");
echo SITE_NAME; // خروجی: پی اچ پی ساز
?>
روش دوم: استفاده از کلمه کلیدی const
این روش معمولاً در نسخههای جدیدتر PHP و بیشتر برای تعریف ثابتها در کلاسها و سطوح عمومی اسکریپت استفاده میشود.
سینتکس:
<?php
const MAX_USERS = 100;
echo MAX_USERS; // خروجی: 100
?>
نکته نامگذاری: بر اساس یک استاندارد جهانی و خوانایی بهتر، نام ثابتها همیشه با حروف بزرگ (Uppercase) نوشته میشود تا به راحتی از متغیرها قابل تشخیص باشند. همچنین در نامگذاری ثابتها نیازی به استفاده از علامت دلار ($) در ابتدا نیست.
تفاوتهای اصلی ثابتها (Constants) با متغیرها (Variables)
اگرچه هم ثابتها و هم متغیرها برای ذخیره دادهها استفاده میشوند، اما تفاوتهای ساختاری مهمی بین آنها وجود دارد:
| ویژگی | متغیرها (Variables) | ثابتها (Constants) |
| علامت دلار ($) | با علامت $ شروع میشوند |
بدون علامت $ نوشته میشوند |
| نحوه مقداردهی | با عملگر مساوی = مقداردهی میشوند |
با تابع define() یا کلمه کلیدی const ساخته میشوند |
| تغییر مقدار | مقدار آنها در طول برنامه قابل تغییر است | مقدار آنها ثابت است و هرگز تغییر نمیکند |
| محدوده دسترسی (Scope) | تحت تأثیر قوانین Scope توابع هستند | به صورت پیشفرض سراسری (Global) هستند و در همه جا قابل دسترسیاند |
ثابتهای جادویی (Magic Constants) در PHP
زبان PHP تعدادی ثابت از پیش تعریف شده دارد که به آنها ثابتهای جادویی میگویند. مقدار این ثابتها بر اساس جایی که در کد استفاده میشوند تغییر میکند. این ثابتها برای دیباگ کردن و فهمیدن مسیر فایلها بسیار کاربردی هستند.
برخی از مهمترین ثابتهای جادویی عبارتند از:
-
__LINE__: شماره خط فعلی در فایل. -
__FILE__: مسیر کامل و نام فایل جاری. -
__DIR__: مسیر پوشهای که فایل در آن قرار دارد. -
__FUNCTION__: نام تابعی که در آن قرار داریم.
مثال:
<?php
echo "شما در خط " . __LINE__ . " از فایل زیر هستید: " . __FILE__;
?>
جمعبندی
استفاده از ثابتها یکی از نشانههای کدنویسی تمیز و استاندارد است. هر زمان که با مقداری سروکار دارید که قرار نیست در طول اجرای برنامه تغییر کند (مانند تنظیمات پایگاه داده یا کانفیگهای اصلی سیستم)، حتماً به جای متغیر از ثابتها استفاده کنید تا از تغییرات تصادفی و خطاهای منطقی در برنامه جلوگیری شود.
برای یادگیری مباحث پیشرفتهتر و ادامه مسیر یادگیری، سایر مقالات دستهبندی نصب و سینتکس پایه را در سایت پی اچ پی ساز دنبال کنید.

بدون دیدگاه