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 MyNamespace\MyClass::class; // خروجی: MyNamespace\MyClass

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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