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

با استفاده از این ثابت‌های جادویی می‌توانید اطلاعات مفیدی درباره محل و نام کلاس‌ها، توابع، و فضاهای نام در اسکریپت خود بدست آورید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.