Bu dərsdə PHP sabitləri haqqında danışacağıq. PHP sabiti nədir? PHP-də sabiti necə yaratmaq olar? PHP sabitləri nə edir? PHP daimi yaradılması qaydaları hansılardır? Bunu öyrənmək üçün oxuyun.

Sabitlər verilənləri saxlamaq üçün istifadə olunan sadə məlumat sahibləridir. Sabitlər dəyişənlər kimidir. Dəyişənlərlə müqayisədə onların yeganə fərqi budur: Dəyişənlərə təyin edilmiş məlumatlar sonradan dəyişdirilə və ya silinə bilər (müəyyən edilməmiş və ya null edilə bilər); Bununla belə, sabitlərə təyin edilmiş məlumatlar sonradan dəyişdirilə və ya silinə bilməz.

Sabit yaratmaq üçün biz PHP-nin əvvəlcədən təyin edilmiş define() funksiyasından və ya const açar sözündən istifadə edirik.

Aşağıdakı nümunədə sabitləri define() funksiyası və const açar sözü ilə müəyyən edəcəyik.

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 Daimi Yaradılma Qaydaları

  • Sabit adlar yalnız hərf və ya _ (alt xətt) ilə başlaya bilər.
  • (A-Z a-z 0-9) və _ (alt xətt) sabit adlarda istifadə edilə bilər.
  • Xüsusi simvollar heç vaxt daimi adlarda istifadə edilə bilməz.
  • Sabit adları təyin edərkən PHP-nin istifadə etdiyi qorunan sözlərdən (if, break, default, new və s.) istifadə edilə bilməz.
  • Sabitlərə təyin edilmiş dəyərlər sonradan dəyişdirilə, silinə və ya qeyri-müəyyən edilə bilməz.

PHP Daimi Yaradılması Tövsiyələri və Məsləhətləri

  • Qlobal kodun sabit adlarda yazılması və oxunaqlı olması üçün türk simvollarından istifadə edilməsi tövsiyə edilmir.
  • Qlobal sahədə yaratdığımız sabiti lokal sahədə const ifadəsi ilə adlandıra bilərik. Lakin lokal sahədə yaratdığımız sabiti qlobal sahədə adlandıra bilmərik. Bu qayda müəyyən funksiya ilə yaratdığımız sabitlərə şamil edilmir. Defin funksiyası ilə yaratdığımız sabitləri istənilən sahədən istənilən sahəyə çağıra bilərik.
  • Define() funksiyası ilə yaradılmışdır, o, default olaraq hərflərə həssasdır. İsteğe bağlı olaraq, define() funksiyası ilə yaradılmış sabitlər funksiyaya üçüncü arqument kimi false təyin etməklə hərflərə həssas ola bilər. const açar sözü ilə yaradılmış sabitlər hərflərə həssas deyil.
  • PHP hazırda həm hərflərə həssas, həm də böyük hərflərə həssas olmayan sabitləri dəstəkləyir. Hərflərə həssas olmayan sabitlər praktiki deyil, funksionallıqda müxtəlif uyğunsuzluqlara məruz qalır və həddindən artıq icra mürəkkəbliyi ilə nəticələnir. Bu səbəbdən  sabitləri hərflərə həssas etmək heç vaxt tövsiyə edilmir.

PHP daimi nümunələri

Aşağıdakı misalda biz ədəd məlumat tipində bir sabitə qiymət verilməsini və sabitə başqa bir sabitin qiymətinin verilməsini əhatə edəcəyik.

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

Aşağıdakı misalda massiv tipli məlumatların sabitə təyin edilməsi ilə məşğul olacağıq.

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

Aşağıdakı misalda qlobal sahədə yaratdığımız sabiti lokal sahədə const açar sözü ilə adlandıracağıq.

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

Aşağıdakı nümunədə lokal sahədə yaratdığımız sabiti qlobal sahədə const açar sözü ilə adlandıracağıq. Qeyd: Bu nümunə xətanın nəticəsini qaytarır. Çünki bu istifadə düzgün deyil.

// 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.