در این درس، ثابت های PHP را مورد بحث قرار می دهیم. PHP ثابت چیست؟ چگونه در PHP ثابت ایجاد کنیم؟ ثابت های PHP چه کاری انجام می دهند؟ قوانین ایجاد ثابت PHP چیست؟ ادامه مطلب را بخوانید تا متوجه شوید.

ثابت ها نگهدارنده های ساده داده ای هستند که برای ذخیره داده ها استفاده می شوند. ثابت ها مانند متغیرها هستند. تنها تفاوت آنها در مقایسه با متغیرها این است: داده های اختصاص داده شده به متغیرها را می توان تغییر داد یا بعداً حذف کرد (تعریف نشده یا تهی شد). با این حال، داده های اختصاص داده شده به ثابت ها را نمی توان بعدا تغییر یا حذف کرد.

برای ایجاد یک ثابت، از تابع تعریف شده () PHP یا کلمه کلیدی const استفاده می کنیم.

در مثال زیر، ثابت ها را با تابع define() و کلمه کلیدی const تعریف می کنیم.

define( 'CAR_NAME', 'MERCEDES' );
// define() fonksiyonuyla CAR_NAME adında bir sabit tanımladık ve MERCEDES değerini verdik.
echo CAR_NAME;
// Çıktı: MERCEDES
const COMPANY_NAME = 'Onur Özden Web Çözümleri';
// const anahtar kelimesiyle COMPANY_NAME adında bir sabit tanımladık ve Onur Özden Web Çözümleri değerini verdik.
echo COMPANY_NAME;
// Çıktı: Onur Özden Web Çözümleri

قوانین ایجاد ثابت PHP

  • نام‌های ثابت فقط می‌توانند با حرف یا _ (زیر خط) شروع شوند.
  • (A-Z a-z 0-9) و _ (زیر خط) را می توان در نام های ثابت استفاده کرد.
  • کاراکترهای خاص هرگز نمی توانند در نام های ثابت استفاده شوند.
  • هنگام تعریف نام های ثابت، نمی توان از کلمات رزرو شده استفاده شده توسط PHP (if، break، default، new و غیره) استفاده کرد.
  • مقادیر تخصیص داده شده به ثابت ها را نمی توان تغییر داد، حذف کرد یا بعداً تعریف نشد.

توصیه ها و نکات ایجاد مداوم PHP

  • نوشتن کدهای سراسری با نام های ثابت و استفاده از حروف ترکی برای خوانایی توصیه نمی شود.
  • می توانیم ثابتی را که در ناحیه جهانی ایجاد کردیم با عبارت const در ناحیه محلی صدا کنیم. با این حال، نمی‌توانیم ثابتی را که در ناحیه محلی ایجاد کرده‌ایم، در منطقه جهانی بنامیم. این قانون در مورد ثابت هایی که با تابع define ایجاد می کنیم صدق نمی کند. می توانیم ثابت هایی را که با تابع define ایجاد کرده ایم از هر فیلدی به هر فیلدی فراخوانی کنیم.
  • که با تابع define() ایجاد شده است، به طور پیش فرض به حروف بزرگ و کوچک حساس است. به صورت اختیاری، ثابت های ایجاد شده با تابع define() می توانند با اختصاص false به عنوان آرگومان سوم به تابع، به حروف بزرگ و کوچک حساس نباشند. ثابت های ایجاد شده با کلمه کلیدی const به حروف بزرگ و کوچک حساس نیستند.
  • PHP در حال حاضر از هر دو ثابت حساس به حروف بزرگ و کوچک پشتیبانی می کند. ثابت‌های حساس به حروف غیرعملی هستند، در معرض ناهماهنگی‌های مختلف در عملکرد هستند و منجر به پیچیدگی اجرای بیش از حد می‌شوند. به همین دلیل، غیر حساس کردن ثابت ها به بزرگی و کوچکی هرگز توصیه نمی شود.

PHP مثال‌های ثابت

در مثال زیر، دادن یک مقدار به یک ثابت در نوع داده عددی و دادن مقدار یک ثابت دیگر به ثابت را پوشش خواهیم داد.

define('SOFTWARE_VERSION', 2.4);
// define() fonksiyonuyla SOFTWARE_VERSION adında bir sabit tanımladık ve 2.4 değerini verdik.
echo SOFTWARE_VERSION;
// Çıktı: 2.4
const VERSION = SOFTWARE_VERSION;
// const anahtar kelimesiyle VERSION adında bir sabit tanımladık ve SOFTWARE_VERSION sabitinin değerini verdik.
echo VERSION;
// Çıktı: 2.4

در مثال زیر، انتساب داده‌های نوع آرایه به یک ثابت را انجام می‌دهیم.

define('SOFTWARE_VERSION', 2.4);
// define() fonksiyonuyla SOFTWARE_VERSION adında bir sabit tanımladık ve 2.4 değerini verdik.
echo SOFTWARE_VERSION;
// Çıktı: 2.4
const VERSION = SOFTWARE_VERSION;
// const anahtar kelimesiyle VERSION adında bir sabit tanımladık ve SOFTWARE_VERSION sabitinin değerini verdik.
echo VERSION;
// Çıktı: 2.4

در مثال زیر ثابتی را که در ناحیه جهانی ایجاد کردیم با کلمه کلیدی const در ناحیه محلی فراخوانی می کنیم.

const GLOBAL_CONSTANT = 'CONSTANT VALUE';
// Global alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string
{
    return GLOBAL_CONSTANT;
}

// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: CONSTANT VALUE

در مثال زیر ثابتی را که در ناحیه محلی ایجاد کردیم با کلمه کلیدی const در ناحیه جهانی فراخوانی می کنیم. توجه: این مثال خروجی خطا را برمی گرداند. زیرا این استفاده نادرست است.

// Local alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string {
	const GLOBAL_CONSTANT = 'CONSTANT VALUE';
	return GLOBAL_CONSTANT;
}
// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: Parse error: syntax error, unexpected 'const'  (T_CONST)
// Bu hata çıktısını almamızın nedeni local alanda const anahtar kelimesiyle sabit oluşturamamızdır. Const anahtar kelimesiyle bir sabiti sadece top-level veya global dediğimiz tüm scriptte geçerli olan alanlarda oluşturabiliriz.