در زبان برنامه نویسی PHP متغیرها و ثابتها دو نوع متفاوت از داده هستند. هر دوی اینها می توانند برای ذخیره داده های مختلفی مانند اعداد، رشته ها، آرایه ها و… استفاده شوند، اما در برخی موارد، کاربرد هرکدام از آنها متفاوت است.
متغیرها در PHP به کمک عبارت $ نمایش داده میشوند. برای مثال:
$age = 25;
$name = "Erfan";
$numbers = array(1, 2, 3, 4, 5);
در مثال بالا متغیر $age به عنوان یک متغیر عددی، متغیر $name به عنوان یک متغیر رشته ای و متغیر $numbers به عنوان یک متغیر آرایه تعریف شده اند.
ثابتها در PHP با استفاده از تابع define تعریف میشوند و با استفاده از عبارت ثابت در کد شناسایی میشوند. برای مثال:
define("PI", 3.14);
define("GREETING", "Hello, World!");
define("NUMBERS", array(1, 2, 3, 4, 5));
در مثال قبل ثابت PI به عنوان یک ثابت عددی، ثابت GREETING به عنوان یک ثابت رشته ای و ثابت NUMBERS به عنوان یک ثابت آرایه تعریف شده اند.
تفاوت اصلی بین متغیرها و ثابتها در PHP این است که مقدار متغیرها در طول زمان قابل تغییر است، اما مقدار ثابتها برای طول کارکرد برنامه ثابت است و نمیتوان آنها را در طول زمان تغییر داد.
در PHP ثابتها عموما برای نگهداری اطلاعات ثابت مانند نامهای ثابت، مقادیر ثابت، تعریف مسیرهای فایل و غیره استفاده میشوند. ثابتها در کد برنامه به کمک نام ثابت شناخته میشوند و مقدار آنها قابل تغییر نیست.
برای مثال، در مثال زیر یک ثابت به نام SITE_NAME تعریف شده است که مقدار ثابت آن “My Website” است:
define('SITE_NAME', 'My Website');
در این حالت، مقدار SITE_NAME برای طول زمان ثابت است و قابل تغییر نیست.
اگر مقدار یک متغیر تغییر کند، میتواند در هر نقطه از برنامه به روز رسانی شود. به عنوان مثال، متغیر $age در مثال قبل، با استفاده از اپراتور افزایش (++) میتواند به روز رسانی شود:
$age = 25;
$age++;
echo $age; // Output: 26
اما در صورت تلاش برای تغییر مقدار یک ثابت، یک خطای PHP تولید میشود و اجرای برنامه متوقف میشود:
define('SITE_NAME', 'My Website');
SITE_NAME = 'New Website'; // Error: Cannot reassign a constant value
بهتر است در صورتی که نیاز به تغییر مقدار یک متغیر وجود ندارد، از ثابت استفاده کنید تا اطمینان حاصل شود که مقدار در طول زمان ثابت است و توسعه دهندگان دیگر نمیتوانند به طور تصادفی مقدار آن را تغییر دهند.
برای تعریف یک متغیر در PHP، نیاز است ابتدا نام متغیر و سپس عملگر معرفی کردن (assignment operator) “=” و مقدار متغیر مورد نظر را وارد کنید.
به عنوان مثال در کد زیر یک متغیر به نام $name تعریف شده است که مقدار آن “Erfan” است:
$name = "Erfan";
مقدار متغیر را میتوان در هر نقطه از برنامه تغییر داد. برای تغییر مقدار متغیر، نام متغیر را وارد کرده و مقدار جدید را با عملگر “=” وارد کنید.
به عنوان مثال در کد زیر مقدار متغیر $name به “Reza” تغییر کرده است:
$name = "Reza";
اگر مقدار متغیر قبل از تعریف، در حالتی که از آن استفاده شود، تعریف نشده باشد، PHP یک خطای اجرایی تولید میکند. برای پیشگیری از این خطا، میتوانید از تابع isset() استفاده کنید تا بررسی کنید که متغیر قبل از استفاده تعریف شده باشد یا نه.
if (isset($name)) {
echo "Name is: " . $name;
} else {
echo "Name is not defined.";
}
در مثال قبل ابتدا با استفاده از تابع isset() بررسی میشود که متغیر $name تعریف شده باشد یا نه. سپس اگر تعریف شده باشد، مقدار آن را با استفاده از اپراتور اتصال رشته “.” و تابع echo چاپ میکنیم. در غیر این صورت، یک پیام خطا چاپ میشود.
اگر متغیری تعریف شده باشد، میتوانید با استفاده از تابع unset() آن را حذف کنید:
unset($name);
در این مثال، با استفاده از تابع unset() متغیر $name حذف شده است. به همین دلیل، اگر در ادامه برنامه از این متغیر استفاده شود PHP یک خطای اجرایی تولید میکند.
متغیرها در PHP به صورت پویا هستند، یعنی مقدار آنها میتواند در طول اجرای برنامه تغییر کند. بر خلاف متغیرها، ثابتها در PHP مقدار ثابت دارند و نمیتوانند در طول اجرای برنامه تغییر کنند.
برای تعریف یک ثابت در PHP، از تابع define() استفاده میشود. تابع define() دو پارامتر دارد: اولین پارامتر، نام ثابت است و دومین پارامتر، مقدار ثابت است. به عنوان مثال:
define("PI", 3.14159);
در مثال بالا یک ثابت به نام PI تعریف شده است که مقدار آن برابر با 3.14159 است. بعد از تعریف یک ثابت، نمیتوانید مقدار آن را تغییر دهید.
برای استفاده از یک ثابت در PHP، کافی است نام ثابت را به همراه $ قرار دهید. به عنوان مثال:
echo "The value of PI is " . PI;
در این مثال، مقدار ثابت PI با استفاده از نام ثابت و دستور echo چاپ میشود.
با استفاده از تابع defined()، میتوانید بررسی کنید که آیا یک ثابت تعریف شده است یا نه. به عنوان مثال:
if (defined("PI")) {
echo "The value of PI is " . PI;
} else {
echo "PI is not defined.";
}
در مثال بالا با استفاده از تابع defined() بررسی میشود که آیا ثابت PI تعریف شده است یا نه. سپس اگر تعریف شده باشد، مقدار آن با استفاده از نام ثابت و دستور echo چاپ میشود. در غیر این صورت، یک پیام خطا چاپ میشود.
در کل، استفاده از ثابتها میتواند در تعریف مقادیر ثابت، تعریف کردن پارامترهای ثابت و همچنین استفاده از مقادیر ثابت در سراسر کدهای برنامهنویسی مفید باشد. برای مثال، در کدهای برنامهنویسی PHP، ممکن است بخواهید یک آدرس URL را در چندین جای مختلف برنامه استفاده کنید. در این صورت، به جای استفاده از آدرس URL در هر بخش از برنامه، میتوانید یک ثابت برای آدرس URL تعریف کنید و از آن در سراسر برنامه استفاده کنید. با این کار، در صورت تغییر آدرس URL، تنها کافی است که مقدار آن را در یک جای برنامه تغییر دهید و از آنجا به بعد، تمام بخشهای مختلف برنامه از آدرس URL جدید استفاده خواهند کرد.
همچنین، در PHP میتوانید از ثابتهای پیشفرض استفاده کنید که توسط زبان PHP تعریف شدهاند. برای مثال، ثابت PHP_VERSION شامل نسخه فعلی زبان PHP است و میتوانید از آن در برنامه خود استفاده کنید. به عنوان مثال:
echo "This program is running on PHP version " . PHP_VERSION;
در این مثال، با استفاده از ثابت PHP_VERSION، نسخه فعلی زبان PHP با استفاده از دستور echo چاپ میشود.
باید توجه داشت که استفاده از ثابتها در PHP باید با احتیاط و هوشمندانه انجام شود. برای مثال، استفاده زیاد از ثابتها ممکن است باعث افزایش حافظه مصرفی و کاهش سرعت اجرای برنامه شود. همچنین، بهتر است تنها برای مقادیر ثابت استفاده کنید که واقعاً به عنوان ثابت در برنامه تعریف شدهاند و تغییر نمیکنند.