توفر PHP عددًا كبيرًا من الثوابت المحددة مسبقًا لأي برنامج نصي يتم تشغيله.
ومع ذلك، يتم تعريف العديد من الثوابت بواسطة مكتبات ملحقة مختلفة ولن تظهر إلا عند تحميل مكتبات الملحقات هذه، إما تحميلها ديناميكيًا أو تضمينها في وقت الترجمة.
هناك ثمانية ثوابت سحرية تتغير قيمها حسب موقعها في الكود.
على سبيل المثال، تعتمد قيمة __LINE__ على السطر الموجود في البرنامج النصي. هذه الثوابت الخاصة ليست حساسة لحالة الأحرف وهي كما يلي:
رقم السطر الحالي في الملف.
<?php صدى ' هذا هو رقم السطر " ' . __LINE__ . ' " >
نتيجة الإخراج للمثال أعلاه هي:
هذا هو السطر "2"
المسار الكامل واسم الملف. إذا تم استخدامه ضمن ملف مضمن، فسيتم إرجاع اسم الملف المضمن.
منذ PHP 4.0.2، يحتوي __FILE__ دائمًا على مسار مطلق (أو المسار المطلق الذي تم حله في حالة الارتباط الرمزي)، بينما تحتوي الإصدارات السابقة على مسار نسبي أحيانًا.
مثال:
<?php صدى ' الملف موجود في " ' . __FILE__ . ' " ' ? >
نتيجة الإخراج للمثال أعلاه هي:
الملف موجود في "E:wampwwwtestindex.php"
الدليل الذي يوجد به الملف. إذا تم استخدامه داخل ملف مضمن، فسيتم إرجاع الدليل الذي يوجد به الملف المضمن.
وهو يعادل dirname(__FILE__). لا تتضمن أسماء الدليل شرطة مائلة زائدة إلا إذا كانت الدليل الجذر. (جديد في PHP 5.3.0)
<?php صدى ' الملف موجود في " ' . __DIR__ . ' " ' ? >
نتيجة الإخراج للمثال أعلاه هي:
الملف موجود في "E:wampwwwtest"
اسم الوظيفة (جديد في PHP 4.3.0). منذ PHP 5، يُرجع هذا الثابت اسم الوظيفة عندما تم تعريفها (حساسة لحالة الأحرف). في PHP 4، تكون هذه القيمة دائمًا صغيرة.
<?php وظيفة امتحان ( ) { صدى ' اسم الوظيفة : ' __FUNCTION__ } اختبار ( ) ;
نتيجة الإخراج للمثال أعلاه هي:
اسم الوظيفة: اختبار
اسم الفئة (جديد في PHP 4.3.0). منذ PHP 5، يُرجع هذا الثابت اسم الفئة عندما تم تعريفها (حساسة لحالة الأحرف).
في PHP 4، تكون هذه القيمة دائمًا صغيرة. يتضمن اسم الفئة النطاق الذي تم الإعلان عنه (على سبيل المثال FooBar). لاحظ أنه نظرًا لأن PHP 5.4 __CLASS__ يعمل أيضًا مع السمات. عند استخدامه ضمن أسلوب السمة، __CLASS__ هو اسم الفئة التي تستدعي أسلوب السمة.
<?php فصل امتحان { وظيفة _مطبعة ( ) { صدى ' اسم الفئة : ' __CLASS__ ' اسم الوظيفة : ' __FUNCTION__ } } $t = جديد اختبار ( ) ; $t - > _print ( ) ;
نتيجة الإخراج للمثال أعلاه هي:
اسم الفئة: اختبار اسم الوظيفة: _print
اسم السمة (جديد في PHP 5.4.0). منذ PHP 5.4.0، طبقت PHP طريقة لإعادة استخدام التعليمات البرمجية تسمى السمات.
يتضمن اسم السمة النطاق الذي تم الإعلان عنه (على سبيل المثال، FooBar).
يتم تجاوز الأعضاء الموروثة من الفئة الأساسية بواسطة طريقة MyHelloWorld في سمة SayWorld المدرجة. يتوافق سلوكه مع الأساليب المحددة في فئة MyHelloWorld. ترتيب الأسبقية هو أن الأساليب الموجودة في الفئة الحالية تتجاوز أساليب السمات، والتي بدورها تتجاوز الأساليب الموجودة في الفئة الأساسية.
<?php فصل قاعدة { عام وظيفة قل مرحبا ( ) { صدى ' مرحبًا ' ؛ } } سمة SayWorld { عام وظيفة قل مرحبا ( ) { الوالد :: sayHello ( ) ؛ صدى ' عالم! ' ؛ } } فصل MyHelloWorld يمتد قاعدة { يستخدم قل العالم } $ س = جديد MyHelloWorld ( ) ; $o - > sayHello ( ) ;
سوف يخرج الروتين أعلاه:
مرحبا بالعالم!
اسم أسلوب الفئة (جديد في PHP 5.0.0). يُرجع اسم الطريقة كما تم تعريفها (حساس لحالة الأحرف).
مثال:
<?php وظيفة امتحان ( ) { صدى ' اسم الوظيفة : ' __الطريقة__ } اختبار ( ) ;
نتيجة الإخراج للمثال أعلاه هي:
اسم الوظيفة: اختبار
اسم مساحة الاسم الحالية (حساسة لحالة الأحرف). يتم تعريف هذا الثابت في وقت الترجمة (جديد في PHP 5.3.0).
مثال:
<?php مساحة الاسم صدى ' مساحة الاسم هي: " ' , __NAMESPACE__ , ' " ' ; // إخراج "MyProject" ?>
نتيجة الإخراج للمثال أعلاه هي:
مساحة الاسم هي: "MyProject"