Sehrli sabitlər. PHP Php qlobal sabitlərində sehrli üsullar və əvvəlcədən təyin edilmiş sabitlər




Sabitlər sadə dəyərlərin identifikatorlarıdır (adları). Onların adından asanlıqla görmək olar ki, skript icrası zamanı onların dəyəri dəyişə bilməz (istisnalar sözün tam mənasında həqiqətən sabitlər olmayan “sehrli” sabitlərdir). Sabit adlar hərflərə həssasdır. Konvensiyaya görə, daimi adlar həmişə böyük hərflə yazılır.

Sabitin adı PHP-dəki digər adlarla eyni qaydalara əməl etməlidir. Etibarlı ad hərf və ya alt xətt ilə başlayır və hərflərdən, rəqəmlərdən və alt xəttdən ibarətdir. Sabitin düzgün adını yoxlamaq üçün müntəzəm ifadə belə görünür: *

Şərh: Burada "hərf" anlayışı a-z, A-Z simvolları və 127-dən 255-ə qədər (0x7f-0xff) ASCII kodları olan digər simvollardır.

Sintaksis

Define() funksiyası və ya açar sözü ilə sabiti təyin edə bilərsiniz const PHP 5.3.0-dan bəri sinif bəyannaməsindən kənar. Sabit müəyyən edildikdən sonra onun dəyəri dəyişdirilə və ya etibarsız sayıla bilməz.

Sabitlər yalnız skalyar məlumatları ehtiva edə bilər (boolean, tam, float və sətir tipləri). Tipli sabitləri müəyyən etmək də mümkündür, lakin gözlənilməz nəticələrə səbəb ola biləcəyi üçün bundan qaçınmaq lazımdır.

Sabitin adını göstərərək onun qiymətini ala bilərsiniz. Dəyişənlərdən fərqli olaraq siz ehtiyac yoxdur sabitin adından əvvəl simvol qoyulur $ . Əgər sabitin adını dinamik şəkildə yaradırsınızsa, sabitin dəyərini əldə etmək üçün sabit () funksiyasından da istifadə edə bilərsiniz. Bütün elan edilmiş sabitlərin siyahısını əldə etmək üçün get_defined_constants() funksiyasından istifadə edin.

Şərh: Sabitlər və (qlobal) dəyişənlər müxtəlif ad boşluqlarındadır. Bu o deməkdir ki, məsələn, DOĞRU və $TRUE tamamilə fərqli şeylərdir.

Əgər siz qeyri-müəyyən sabitdən istifadə edirsinizsə, PHP fərz edir ki, siz sabitin adını nəzərdə tutursunuz, sanki sətir hərfi ("CONSTANT" əvəzinə CONSTANT) təyin etmisiniz. Bu, E_NOTICE səviyyəli xəta yaradacaq. $foo-nun niyə yanlış olduğunu izah edən təlimat fəslinə də baxın (əlbəttə ki, siz bəyan etməmisinizsə bar define()) ilə sabit kimi. Sabitin müəyyən edilib-edilmədiyini yoxlamaq istəyirsinizsə, müəyyən edilmiş () funksiyasından istifadə edin.

Sabitlər və dəyişənlər arasındakı fərqlər:

  • Sabitlərin dollar işarəsi prefiksi yoxdur ( $ );
  • Sabitləri qiymət təyin etməklə deyil, yalnız define() funksiyasından istifadə etməklə müəyyən etmək olar;
  • Sabitləri əhatə dairəsindən asılı olmayaraq hər yerdə müəyyən etmək və əldə etmək olar;
  • İlkin elandan sonra sabitlər yenidən müəyyən edilə və ya etibarsız sayıla bilməz; Və
  • Sabitlərin yalnız skalyar qiymətləri ola bilər.

"Sehrli" sabitlər

PHP icra edilən hər bir skript üçün əvvəlcədən təyin edilmiş sabitlərin böyük siyahısını təqdim edir. Bu sabitlərin çoxu müxtəlif modullar tərəfindən müəyyən edilir və yalnız o modullar dinamik yükləmə və ya statik quruluş vasitəsilə mövcud olduqda mövcud olacaqdır.

İstifadə olunduğu kontekstdən asılı olaraq mənasını dəyişən yeddi sehrli sabit var. Məsələn, dəyər __LINE__ skriptdə bu sabitin göstərildiyi sətirdən asılıdır. Xüsusi sabitlər hərflərə həssasdır və aşağıda verilmişdir:

Bəzi "sehrli" PHP sabitləri
ad Təsvir
__LINE__ Fayldakı cari sətir nömrəsi.
__FAYL__ Cari faylın tam yolu və adı. Daxil edilmiş fayl daxilində istifadə edilərsə, verilmiş faylın adı qaytarılır. PHP 4.0.2 ilə başlayaraq, __FAYL__ həmişə həll edilmiş simvolik keçidlərlə mütləq yolu ehtiva edir, halbuki köhnə versiyalar bəzi hallarda nisbi yolu qaytarır.
__DIR__ Fayl kataloqu. Daxil edilmiş fayl daxilində istifadə edilərsə, həmin faylın kataloqu qaytarılır. Bu, zəng etməyə bərabərdir dirname(__FILE__). Qaytarılan qovluq adı kök qovluq istisna olmaqla, kəsik işarəsi ilə bitmir (PHP 5.3.0-da əlavə edilmişdir.)
__FUNCTION__ Funksiya adı. (PHP 4.3.0-da əlavə edilmişdir.) PHP 5-dən etibarən bu sabit funksiyanın adını tam elan edildiyi kimi qaytarır (həssas hərf). PHP 4-də bu dəyər həmişə kiçik hərflə yazılmışdır.
__CLASS__ Sinif adı. (PHP 4.3.0-da əlavə edilmişdir) PHP 5-dən etibarən bu sabit sinif adını elan edildiyi kimi qaytarır (büyük hərflərə həssas). PHP 4-də bu dəyər həmişə kiçik hərflə yazılmışdır. Sinif adında sinfin elan edildiyi ad sahəsinin adı var (məsələn, foo\bar). Qeyd edək ki, PHP5.4 __CLASS__ xüsusiyyətlərdə də işləyir. Xüsusiyyət metodlarında istifadə edildikdə, __CLASS__ həmin metodların istifadə olunduğu sinfin adıdır.
__TRAIT__ Xarakterin adı. (PHP 5.4.0-da əlavə edilmişdir) PHP 5.4-dən etibarən bu sabit əlamətin adını tam elan edildiyi kimi qaytarır (həssas hərf). Bu ad əlamətin elan edildiyi ad sahəsinin adını ehtiva edir (məsələn, foo\bar).
__METOD__ Sinif metodunun adı. (PHP 5.0.0-da əlavə edilib) Metodun adı elan edildiyi kimi qaytarılır (büyük hərflərə həssasdır).
__NAMESPACE__ Cari ad sahəsinin adı (həssas hərf). Bu sabit kompilyasiya zamanı müəyyən edilir (PHP 5.3.0-da əlavə edilmişdir).
Beispiel #1 Etibarlı və etibarsız sabit adlar
// Etibarlı sabit adlar müəyyən edir("FOO", "bir şey"); define("FOO2", "başqa bir şey"); müəyyən ("FOO_BAR", "daha bir şey"); // Yanlış sabit adlar define("2FOO", "bir şey"); // Bu etibarlı bəyannamədir, lakin ondan istifadə etməmək daha yaxşıdır: // PHP bir gün "sehrli" sabiti qeyd edə bilər // skriptinizi pozacaq define("__FOO__", "bir şey");

Dəyişən məlumatları ehtiva edən bir varlıqdır. Əgər verilənlər növü saxlanılan verilənlərin formatının və onlarla işləməyin ümumi təsviridirsə, onda dəyişən kompüter yaddaşının xüsusi blokunu təmsil edir. Bu blok saxlayır dəyişən dəyər, və siz bloka (və dəyərə) müraciət edə bilərsiniz dəyişən adı.


PHP-də dəyişən adı həmişə dollar işarəsi ($) ilə başlayır, ondan sonra hərf, ardınca isə hərflər, rəqəmlər və alt xətt işarələri gəlir. Adlar hərflərə həssasdır, yəni. $value, $Value, $VALUE və $VaLuE dəyişənləri adları eyni oxunsa da, dörd FƏRQLİ dəyişəndir.

Sintaktik cəhətdən düzgün dəyişən adlarına nümunələr:

Etibarsız adlara misal:

Dəyişənlərin adlandırılması ilə bağlı bir ümumi qayda (bütün proqramlaşdırma dilləri üçün) mövcuddur. Qayda çox sadədir: adlar həmişə mənalı olmalıdır.

Zəif oxunan kod nümunəsi

Qısalıq, təbii ki, istedadın mahiyyətidir, lakin onun yığcamlığı naminə kodun qavranılmasının asanlığını qurban vermək ağlabatan deyil. Üstəlik, adın uzunluğu heç bir şəkildə skriptin performansına təsir göstərmir. Amma əks ifrata getməyin - dəyişənlərə çox uzun adlar vermək. Əgər ad iki və ya daha çox sözdən ibarət olmalıdırsa, adın hissələri böyük hərflə yazılmalı və ya alt xətt ilə ayrılmalıdır. Məsələn, ad $strusernameadndomain formada daha yaxşıdır $str_UserNameAndDomain.

Yaxşı oxunan kod nümunəsi

Dəyişənlər iki növdür: müntəzəm dəyişənlər(dəyər dəyişənləri) və istinad dəyişənləri. Aralarındakı əsas fərq məlumatların işlənmə üsulundadır. Adi bir dəyişənə dəyər təyin edərkən, təyin edilmiş dəyər tamamilə kopyalanır, yəni. yeni yaddaş bloku yaradılır, burada orijinal dəyərin surəti yerləşdirilir. Gələcəkdə bütün dəyişikliklər orijinal məlumatda deyil, bu nüsxədə əks olunacaq.

İstinad dəyişənləri fərqli işləyir. İstinad dəyişəninə dəyər təyin edərkən, məlumat deyil, onun harada yerləşdiyi barədə məlumat kopyalanır. Nəticədə məlum olur ki, dəyişən orijinal məlumatları ehtiva edən eyni bloka işarə edir. İndi istinad dəyişənin dəyərini dəyişdirsəniz, orijinal dəyər dəyişəcək.

Məsələni nəzərdən keçirək:

Dəyərlərə görə dəyişənlərin ötürülməsi

PHP-də dəyişənlərlə işləmək üçün xüsusi funksiyalar mövcuddur:

  • isset() - dəyişənin elan edilib-edilmədiyini və onun dəyərinin NULL-dən fərqli olub olmadığını yoxlayır;
  • empty() - isset() analoqu
  • unset() dəyişənin dəyərini silən və dəyişənin özünü mövcud dəyişənlər siyahısından çıxaran (dəyişi məhv edən) daxili dil funksiyasıdır.

Dəyişən əhatə dairəsi

Dəyişən üçün çox vacib bir xüsusiyyət onun əhatə dairəsi (əhatə dairəsi), yəni. proqramda (skriptdə) onun dəyərini oxuya və ya dəyişdirə biləcəyiniz yerin təsviri. Həmişə yadda saxlamaq lazımdır ki, proqram blokunun daxilində elan edilmiş dəyişən yalnız bu blok daxilində görünür və blokdan kənarda elan edilmiş dəyişənə istinad etmək üçün onu xüsusi üsulla elan etmək lazımdır.

Bu halda proqram blokları "skript", "funksiya" və ya "sinif" olur. Misal üçün:

Hər şey düzgün görünür, amma işləmir. Niyə? Çünki əgər siz açıq şəkildə funksiyanın daxilindəki $name dəyişəninin əslində qlobal $name dəyişəni olduğunu söyləməsəniz, tərcüməçi $name adlı dəyişənin boş qiymətlə müvəqqəti surətini yaradacaq. Və dəyər boş (müəyyən edilməmiş) olduğundan, sətirlərin əlavə edilməsinin nəticəsi qeyri-müəyyən (boş) olacaqdır.

Düzəliş çox asandır, sadəcə bir sətir əlavə edin (qalın hərflərlə):

qlobal $name; // açıq şəkildə göstərir ki, biz // qlobal dəyişəndən istifadə etməliyik.$fullName = $name . $ailə; echo "Funksiya daxilindəki ad: ".$fullName; ) echo "Funksiyanı çağırmadan ƏVVƏL Ad: ".$name; // nəticə: "Funksiyaya zəng etmədən ƏVVƏL ad: Vasya" tryChengeName(" İvanov"); // nəticə: "Funksiya daxilindəki ad: Vasya İvanov" əks-səda "Funksiyanı çağırdıqdan SONRA Ad: ".$name; // nəticə: "Funksiyanı çağırdıqdan sonra ad: Vasya İvanov" ?>

Bu misalda, $name dəyişəninin bütün skriptə bərabər əhatə dairəsi var və funksiya daxilində elan edilən $fullName dəyişəninin əhatə dairəsi funksiyanın özünə bərabərdir. Bu o deməkdir ki, onların funksiyası çıxdıqda, $fullName dəyişəni məhv ediləcək və onun dəyərini oxumaq üçün edilən bütün cəhdlər xəta ilə nəticələnəcək.

"Siniflər və varislik" bölməsində siniflərlə işləmək nümunələrinə baxacağıq.

dəyişən dəyişənlər

Bəli, bəli, burada heç bir səhv yoxdur, PHP-də bəzi dəyişənlər belə (iki sözlə) çağırılır. Məsələ ondadır ki, dəyişən adının mətn hissəsi (yəni dollar işarəsi olmayan ad) özü də ad ola bilər. Misal üçün:

Çox zərurət olmadıqca bu cür üsullardan istifadə etmək qətiyyən tövsiyə edilmir. Bu cür fəndlərlə doldurulmuş kodu saxlamaq çox çətindir. Bu, istifadəçilər tərəfindən daxil edilmiş məlumatlarla işləyərkən xüsusilə vacibdir. Çətinliklərin əsas səbəbi gizli asılılıqlardır. Məsələn, "Vasya" adının yerinə belə bir şey yazsanız nə olar """""_;%//^q""? Doğru! Skript əksər hallarda uğursuz olacaq! Əlbəttə ki, "səhv" simvolların olması üçün bir dəstə yoxlama əlavə edə bilərsiniz, lakin bu cür hiylələrdən ümumiyyətlə istifadə etməmək daha asandır.

Sabitlər

Sabit bəzi dəyişməz dəyərdir. Sabit ad və qiymətlə eyni vaxtda elan edilir. Funksiya sabiti elan etmək üçün istifadə olunur. müəyyənləşdirmək(), və sabitin mövcudluğunu müəyyən etmək (yəni müəyyən edilib-edilməməsi) - funksiya müəyyən edilmiş(). Sabitin adı dəyişənlərin adları ilə eyni qaydalara uyğun qurulur.

Davamlı nümunələr:

PHP sabitlərinin ayrıca bir növü "sehrli sabitlər" adlanan sabitlərdir. Bunlar, dəyəri tərcüməçi tərəfindən təyin olunan və təyin olunan sistem sabitləridir. Belə sabitlər azdır:

  • __LINE__ Cari faylda cari sətir nömrəsini ehtiva edir.
  • __FILE__ Cari faylın tam adını ehtiva edir
  • __FUNCTION__ Cari funksiyanın adını ehtiva edir.
  • __CLASS__ Cari sinfin adını ehtiva edir.
  • __METHOD__ Cari sinifin cari metodunun adını ehtiva edir.

Bu sabitlər ayıklama üçün çox rahatdır, lakin bütün digər hallarda onları müvafiq funksiyalara çağırışlarla əvəz edərək istifadə etməmək daha yaxşıdır.

Salam. Bu gün PHP-də sabitlər haqqında yazmaq qərarına gəldim. Mən sizə sabitlərin necə işlədiyini, hansıların ən çox istifadə edildiyini və baş verdiyini söyləyəcəyəm.

PHP kontekstində sabitlər hansılardır?

Sabitlər mahiyyətcə dəyərini yenidən təyin etmək mümkün olmayan dəyişənlərdir. Yəni, onların dəyərini təyin etdikdən sonra, skriptin icrası zamanı onu dəyişdirə bilməyəcəksiniz. Onlar adətən böyük hərflə yazılır və ad xüsusi olaraq onlarda saxlanılan məlumatları əks etdirir.

PHP-də 2 növ sabit var:

  1. Adi (proqramçı tərəfindən müəyyən edilir)
  2. Əvvəlcədən təyin edilmiş (tərcüməçi tərəfindən müəyyən edilmişdir)

Adi sabitlər

Bu tip sabitlər adətən xidmət məqsədləri üçün bir qayda olaraq istifadə olunur və proqramçı tərəfindən kodun yazılması prosesində yaradılır.
Adi sabit yaratmaq üçün sintaksis belədir:

Define("PI",3.1415);

Sabitin yaradılması daxili konstruktun köməyi ilə baş verir müəyyən ("Daimi ad", "Daimi dəyər").

Sabitlərlə işləmə mexanizmini qısaca izah etmək üçün sabitlərdəki dəyərlərin bir dəfə təyin edildiyini və artıq dəyişdirilə bilməyəcəyinə dair bir nümunə göstərəcəyəm:

Sabitin mövcudluğunu yoxlamaq üçün dil bir funksiya təqdim edir müəyyən edilmişdir("CONST_NAME").

Əvvəlcədən təyin edilmiş sabitlər

Əvvəlcədən təyin edilmiş sabitlər yaradılma üsuluna görə adi sabitlərdən fərqlənir. Onlar tərcüməçinin özü tərəfindən təyin edilir və proqramın icrası kontekstində mənasını dəyişir. Onlar həmçinin hərflərə həssas deyillər. __CLASS__ və ya __sinif__ tərcüməçi tərəfindən mükəmməl şəkildə yerinə yetiriləcəkdir.

Ən çox istifadə olunan əvvəlcədən təyin edilmiş sabitlər bunlardır:

  • __FAYL__- hazırda icra olunan skriptin adını saxlayır.
  • __FUNCTUIN__ cari funksiyanın adıdır.
  • __CLASS__ cari sinfin adıdır.
  • PHP_VERSION- PHP tərcüməçisinin versiyasını ehtiva edir.
  • DOĞRU, YANLIŞ, SIFIR- öz adına uyğun mənaları ehtiva edir.

Belə sabitlərin necə işlədiyinə dair nümunə üçün onlardan birinin istifadəsinə baxaq - __FUNCTION__:

Nümunədən göründüyü kimi, sabit __funksiya__əvvəlcə çağırıldığı funksiyanın adını qaytardı - abc().

Bəli, sabit bir funksiya tərəfindən müntəzəm dəyişən kimi silinə bilməz set(), o, proqramın icrasının əvvəlindən sonuna qədər mövcuddur.

Hamısı budur, sizə uğurlu məşq və yaxşı əhval-ruhiyyə arzulayıram. Sonra görüşərik.

vebsayt Məzmun hüquqları qorunur.

PHP-də layihələriniz üçün əvvəlcədən təyin edilmiş xüsusi sabitlər və sehrli metodlar dəsti var. Define() ilə təyin oluna bilən müntəzəm sabitlərdən fərqli olaraq, əvvəlcədən təyin edilmiş sabitlərin mənası onların istifadə olunduğu yerdən asılıdır və kod və PHP sistemi haqqında yalnız oxuna bilən məlumatdır. Xüsusi PHP funksionallığına daxil olmaq üçün dərslərinizdə sehrli üsullardan istifadə edilə bilər.

Bu dərslikdə kod nümunələri ilə bəzi faydalı əvvəlcədən təyin edilmiş sabitlərə və sehrli metodlara baxacağıq.

Əvvəlcədən təyin edilmiş sabitlər

Əvvəlcədən təyin edilmiş sabitlər kodunuz haqqında məlumat almaq üçün istifadə olunur. Belə sabitin adı __LINE__ və __FILE__ kimi ikiqat alt xətt arasında böyük hərflə yazılır. PHP-də mövcud olan bəzi faydalı əvvəlcədən təyin edilmiş sabitlər bunlardır:

  • __LINE__ sabitin istifadə olunduğu mənbə faylında sətir nömrəsini qaytarır:

  • __FILE__ tam yol daxil olmaqla faylın adını təmsil edir:

  • __DIR__ yalnız fayl yolunu təmsil edir:

  • __CLASS__ cari sinfin adını təmsil edir:

  • __FUNCTION__ cari funksiyanın adını təmsil edir:

  • __METHOD__ cari metodun adını təmsil edir:

  • __NAMESPACE__ cari ad sahəsinin adını təmsil edir:

Sehrli üsullar

Sehrli üsullar xüsusi PHP funksionallığı üçün qarmaqlar təmin edir. Onların adları __construct() və __destruct() kimi iki alt xəttdən əvvəl kiçik hərflərlə yazılır.

Construct() PHP-nin sinifinizin nümunəsini yaratmaq üçün çağırdığı sehrli metoddur. İstənilən sayda arqument tələb edir.

Destruct() PHP kollektoru tərəfindən obyekt məhv edildikdə çağırılan sehrli metoddur. Bu üsul heç bir arqument tələb etmir və adətən verilənlər bazası bağlantısını bağlamaq kimi xüsusi əməliyyatları yerinə yetirmək üçün istifadə olunur.

Növbəti bir neçə sehrli üsul mülkiyyət manipulyasiyası üçündür və PHP üçün müəyyən edilməmiş (və ya mövcud olmayan) xüsusiyyət və metod çağırışlarını idarə etmək üçün bir yol təqdim edir.

Xüsusiyyət müəyyən edilmədikdə (və ya mövcud olmadıqda) PHP qəbuledici kontekstdə __get() metodunu çağırır. Metod bir arqument götürür - əmlakın adı. O, əmlakın dəyəri kimi qəbul ediləcək dəyəri qaytarmalıdır.

__set() metodu parametr kontekstində qeyri-müəyyən bir xassə çağırılır. Bu üsul iki arqument, bir xüsusiyyət adı və dəyər alır.

myAarray[$prop] = $dəyər; ) ictimai funksiya __get($prop) ( return $this->myArray[$prop]; ) ictimai funksiya __isset($prop) ( return isset($this->myArray[$prop]); ) ictimai funksiya __unset($prop) ) ( unset($this->myArray[$prop]); ) ictimai funksiya __toString() ( return __CLASS__ . ":" . $this->name; ) ) $obj = new MySample(); if (!isset($obj->name)) ( $obj->name = "Alireza"; ) echo $obj->ad; // Alireza echo $obj; // Mənim Nümunəm: Alireza

Yuxarıdakı kodda ad xassəsi sinifdə müəyyən edilməyib. Kod bu xassəni "Alireza" olaraq təyin etməyə çalışır və PHP __set() sehrli metodunu çağırır. O, $prop arqumenti kimi "ad" və $value kimi "Alireza" alır və dəyəri $myArray özəl massivində saxlayır. __get() metodu oxşar şəkildə işləyir. $obj->name göstərildikdə __get() metodu çağırılır və “name” dəyəri ona $prop arqumenti kimi ötürülür.

Yuxarıdakı nümunədə olduğu kimi, əlçatmaz xassələri manipulyasiya etməyə kömək edən digər sehrli üsullar da var: __isset() , __unset() və __toString() . Həm __isset(), həm də __unset() metodları eyni adlı funksiyalar tərəfindən işə salınır, lakin PHP-də alt xətt olmadan.

Isset() xüsusiyyətin təyin edilib-edilmədiyini yoxlayır. Bu üsul bir arqument tələb edir - yoxlanılacaq əmlak. __unset() metodu bir arqument, sıfırlanacaq xassə adını alır.

Bir çox hallarda obyekti sətir kimi təqdim etmək, məsələn, istifadəçiyə və ya başqa prosesə çıxış üçün əlverişlidir. Normalda PHP obyekti yaddaşdaxili identifikator kimi təqdim edir ki, bu da belə funksiyalar üçün pisdir. __toString() metodu obyekti sətir kimi təqdim etməyə kömək edir. Metod bir obyektin sətir kimi istifadə edildiyi bir çox hallarda işlədilir, məsələn, echo "Hello $obj" . Onu da hər hansı digər ictimai metod kimi birbaşa çağırmaq olar.

Proqramın gedişində dəyişməyən bəzi xüsusi dəyərləri daimi saxlamaq üçün dəyişənlərdən istifadə etmək olduqca əlverişsiz olduğu hallar var. Belə dəyərlər riyazi sabitlər, fayl yolları, müxtəlif parollar və s. ola bilər. Məhz bu məqsədlər üçün PHP belə bir tikinti təmin edir.

proqramın (skriptin) icrası zamanı dəyişməyən adlı qiymət çağırılır.

PHP-də sabitlər funksiya ilə müəyyən edilir müəyyənləşdirmək(). Bu funksiya aşağıdakı formata malikdir:

müəyyənləşdirmək ($adı, $ dəyər, $case_sen), Harada:

$adı- sabitin adı;
$ dəyər- sabitin qiyməti;
$case_sen- isteğe bağlı boolean tipli parametr,
böyük hərflərə həssas (doğru) və ya olmamalı (yanlış).

PHP-də sabitlərin təyin edilməsi və istifadəsi nümunəsi:


echo pi;
// Nəticələr 3.14
?>

Əgər parametr $case_sen bərabərdir doğru, onda tərcüməçi sabitlə işləyərkən hərflərə həssas olacaq. Qeyd edək ki, sabitlər prefikssiz istifadə olunur $ .

Sabitlər və dəyişənlər arasındakı fərqlər:

    Sabitlərin dollar işarəsi prefiksi yoxdur ( $ );

    Sabitləri yalnız funksiyadan istifadə etməklə təyin etmək olar müəyyənləşdirmək(), dəyər təyin etməklə deyil;

    Sabitləri əhatə dairəsindən asılı olmayaraq hər yerdə müəyyən etmək və əldə etmək olar;

    İlkin elandan sonra sabitlər müəyyən edilə və ya etibarsız sayıla bilməz;

    Sabitlərin yalnız skalyar qiymətləri ola bilər.

Sabitlərin mövcudluğunun yoxlanılması

Sabitin mövcudluğunu yoxlamaq üçün funksiyadan istifadə edə bilərsiniz müəyyən edilmiş(). Bu funksiya qayıdır doğru, əgər sabit elan edilirsə. Budur bir nümunə:

// Pi sabitini elan edin
define("pi", 3.14, doğru );
əgər (müəyyən edilmiş("pi" )== doğru ) əks-səda "Daimi pi elan etdi!";
// Skript "Sabit pi elan edildi!"
?>

PHP əvvəlcədən təyin edilmiş sabitlər

PHP aşağıdakı əvvəlcədən təyin edilmiş sabitlərə malikdir:

PHP icra edilən hər bir skript üçün əvvəlcədən təyin edilmiş sabitlərin böyük siyahısını təqdim edir. Bu sabitlərin çoxu müxtəlif modullar tərəfindən müəyyən edilir və yalnız o modullar dinamik yükləmə və ya statik quruluş vasitəsilə mövcud olduqda mövcud olacaqdır.

İstifadə olunduğu kontekstdən asılı olaraq mənasını dəyişən beş əvvəlcədən təyin edilmiş sabitlər var. Məsələn, sabit __LINE__ skriptdə bu sabitin göstərildiyi sətirdən asılıdır. Xüsusi sabitlər hərflərə həssasdır və aşağıda verilmişdir:

ad Təsvir
__LINE__ Fayldakı cari sətir.
__FAYL__ Cari faylın tam yolu və adı.
__DIR__ Faylın kataloqu. Daxildə istifadə edilərsə, daxil edilmiş faylın kataloqu qaytarılır. Bu, dirname(__FILE__) ilə bərabərdir. Kök qovluq olmadığı halda, bu kataloq adında arxa xətt yoxdur.
__FUNCTION__ Funksiya adı. (PHP 4.3.0-da əlavə edilmişdir.)
__CLASS__ Sinif adı. (PHP 4.3.0-da əlavə edilmişdir.)
__TRAIT__ Xarakterin adı. Xüsusiyyət adına elan edildiyi ad sahəsi daxildir (məsələn, Foo\Bar).
__METOD__ Sinif metodunun adı. (PHP 5.0.0-da əlavə edilib)
__NAMESPACE__ Cari ad sahəsinin adı.

əlavə olaraq