در PHP، ثابتها (Constants) متغیرهایی هستند که مقدارشان در طول اجرای برنامه تغییر نمیکند.
ثابتها برای نگهداری مقادیری که نیاز به تغییر ندارند، مانند نام سایت، نسخه نرمافزار، مقادیر عددی خاص و… استفاده میشوند.
۱. نحوه تعریف ثابتها در PHP
در PHP، دو روش اصلی برای تعریف ثابتها وجود دارد:
- استفاده از تابع
define()
- استفاده از کلمه کلیدی
const
الف) تعریف ثابت با define()
تابع define()
برای تعریف یک ثابت استفاده میشود. این تابع دو آرگومان اصلی دارد:
- نام ثابت (به صورت رشته)
- مقدار ثابت
مثال:
define("SITE_NAME", "MyWebsite");
define("VERSION", 1.2);
define("IS_ACTIVE", true);
📌 نکات مهم:
- نام ثابتها بهصورت پیشفرض حساس به حروف بزرگ و کوچک هستند.
- مقدار ثابت میتواند عدد، رشته، بولین، آرایه (از PHP 7.0 به بعد) باشد.
ب) تعریف ثابت با const
کلمه کلیدی const
برای تعریف ثابتها استفاده میشود. برخلاف define()
، این روش فقط برای مقدارهای اسکالر (عدد، رشته، بولین) قابل استفاده است.
مثال:
const SITE_URL = "https://example.com";
const MAX_USERS = 100;
const IS_LOGGED_IN = false;
📌 تفاوتهای define()
و const
:
ویژگی | define() | const |
---|---|---|
قابل استفاده در بدنه شرطی (if و loop ) | ✅ بله | ❌ خیر |
مقدارهای آرایهای پشتیبانی میشود؟ | ✅ (از PHP 7.0) | ❌ خیر |
کار در داخل کلاسها | ❌ خیر | ✅ بله |
۲. نحوه استفاده از ثابتها
پس از تعریف یک ثابت، میتوان در هر بخش از کد PHP بدون علامت $
به آن دسترسی داشت.
الف) دسترسی مستقیم به ثابتها
echo SITE_NAME; // خروجی: MyWebsite
echo "نسخه: " . VERSION; // خروجی: نسخه: 1.2
ب) استفاده در شرطها و توابع
if (IS_ACTIVE) {
echo "سیستم فعال است.";
}
function getSiteUrl() {
return SITE_URL;
}
echo getSiteUrl(); // خروجی: https://example.com
ج) تعریف ثابت در کلاسها
class Config {
const DB_HOST = "localhost";
const DB_USER = "root";
const DB_PASS = "123456";
}
echo Config::DB_HOST; // خروجی: localhost
۳. بررسی ثابتها
PHP توابعی برای بررسی و کار با ثابتها ارائه داده است:
بررسی اینکه یک ثابت تعریف شده یا نه
if (defined("SITE_NAME")) {
echo "ثابت SITE_NAME تعریف شده است.";
} else {
echo "ثابت تعریف نشده!";
}
نتیجهگیری
- ثابتها در PHP متغیرهایی با مقدار ثابت و غیرقابل تغییر هستند.
- دو روش برای تعریف ثابت وجود دارد:
define()
وconst
. - ثابتها بدون
$
فراخوانی میشوند. define()
برای مقدارهای مختلف کاربرد دارد، اماconst
فقط در سطح کلاس و برای مقادیر اسکالر قابل استفاده است.- از
defined()
میتوان برای بررسی وجود یک ثابت استفاده کرد.
با استفاده از ثابتها، کدهای پایدارتر، خواناتر و قابل مدیریتتر خواهند شد. 🚀