PHP – ثابتهای جادویی (Magic Constants)
آخرین بروزرسانی:
ثابتهای از پیش تعریف شده (PHP Predefined Constants)
PHP دارای نه ثابت از پیش تعریف شده است که مقدار آنها بسته به جایی که استفاده میشوند تغییر میکند و به همین دلیل به آنها “ثابتهای جادویی” (Magic Constants) میگویند.
این ثابتهای جادویی با دو زیرخط در ابتدا و انتهای آنها نوشته میشوند، به جز ثابت ClassName::class
.
ثابتهای جادویی (Magic Constants)
در زیر لیستی از ثابتهای جادویی به همراه توضیحات و مثالها آمده است:
ثابت (Constant) | توضیحات (Description) |
---|---|
__CLASS__ |
اگر در داخل یک کلاس استفاده شود، نام کلاس را برمیگرداند. |
__DIR__ |
دایرکتوری فایل را برمیگرداند. |
__FILE__ |
نام فایل به همراه مسیر کامل را برمیگرداند. |
__FUNCTION__ |
اگر در داخل یک تابع استفاده شود، نام تابع را برمیگرداند. |
__LINE__ |
شماره خط فعلی را برمیگرداند. |
__METHOD__ |
اگر در داخل یک تابع که به یک کلاس تعلق دارد استفاده شود، نام کلاس و نام تابع را برمیگرداند. |
__NAMESPACE__ |
اگر در داخل یک فضای نام استفاده شود، نام فضای نام را برمیگرداند. |
__TRAIT__ |
اگر در داخل یک trait استفاده شود، نام trait را برمیگرداند. |
ClassName::class |
نام کلاس مشخص شده و نام فضای نام (در صورت وجود) را برمیگرداند. |
استفاده از __CLASS__ در داخل یک کلاس:
class MyClass {
public function getClassName() {
return __CLASS__;
}
}
$obj = new MyClass();
echo $obj->getClassName(); // خروجی: MyClass
استفاده از __DIR__ برای گرفتن دایرکتوری فایل:
echo __DIR__; // خروجی: مسیر دایرکتوری فعلی
استفاده از __FILE__ برای گرفتن نام فایل به همراه مسیر کامل:
echo __FILE__; // خروجی: مسیر کامل فایل جاری
استفاده از __FUNCTION__ در داخل یک تابع:
function myFunction() {
return __FUNCTION__;
}
echo myFunction(); // خروجی: myFunction
استفاده از __LINE__ برای گرفتن شماره خط فعلی:
echo __LINE__; // خروجی: شماره خط جاری
استفاده از __METHOD__ در داخل یک متد کلاس:
class MyClass {
public function getMethodName() {
return __METHOD__;
}
}
$obj = new MyClass();
echo $obj->getMethodName(); // خروجی: MyClass::getMethodName
استفاده از __NAMESPACE__ در داخل یک فضای نام:
namespace MyNamespace;
echo __NAMESPACE__; // خروجی: MyNamespace
استفاده از __TRAIT__ در داخل یک trait:
trait MyTrait {
public function getTraitName() {
return __TRAIT__;
}
}
class MyClass {
use MyTrait;
}
$obj = new MyClass();
echo $obj->getTraitName(); // خروجی: MyTrait
استفاده از ClassName::class برای گرفتن نام کلاس و فضای نام:
namespace MyNamespace;
class MyClass {}
echo MyNamespaceMyClass::class; // خروجی: MyNamespaceMyClass
با استفاده از این ثابتهای جادویی میتوانید اطلاعات مفیدی درباره محل و نام کلاسها، توابع، و فضاهای نام در اسکریپت خود بدست آورید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام