TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #39 773
مجیک کانستنت‌ها در PHP مقادیر ثابتی هستند که بسته به نحوه استفاده آن‌ها در کد، مقادیرشان تغییر می‌کنند. این کانستنت‌ها اغلب برای ارائه اطلاعات در مورد کد، مانند محل فایل‌ها یا نام کلاس‌ها، استفاده می‌شوند.

__LINE__:

شماره خط فعلی در فایل اسکریپت که در آن قرار دارد را برمی‌گرداند. این برای دیباگ کردن مفید است تا بفهمید خطا در کدام قسمت رخ داده است.

<?php
echo "This is line " . __LINE__;


Output: This is line 2

———

__FILE__:

مسیر کامل فایل جاری را برمی‌گرداند. این کانستنت می‌تواند برای تعیین مکان فایل‌ها هنگام ایجاد مسیرهای داینامیک یا لود کردن فایل‌ها به کار رود.

<?php
echo "This file is " . __FILE__;


Output: This file is C:\Users\{SysName}\Desktop\index.php

———

__DIR__:

مسیر دایرکتوری فایل جاری را برمی‌گرداند. این برای دسترسی به دیگر فایل‌ها یا دایرکتوری‌ها که نسبت به فایل جاری قرار دارند، مفید است.

<?php
echo "Directory path is " . __FILE__;


Output: Directory path is C:\Users\{SysName}\Desktop

———

__FUNCTION__:

نام تابع جاری را برمی‌گرداند. اگر داخل یک تابع نباشید، این کانستنت مقداری خالی برمی‌گرداند. در صورت داشتن Namespace نام تابع همراه با Namespace برگردانده می شود.

function test() {
echo "Function name is " . __FUNCTION__;
}
test();


Output: Function name is test


———

__CLASS__:

نام کلاس جاری را برمی‌گرداند. در صورتی که خارج از یک کلاس باشید، این کانستنت مقداری خالی برمی‌گرداند. در صورت داشتن Namespace نام کلاس همراه با Namespace برگردانده می شود.

class Sample {
public function getClassName() {
echo "Class name is " . __CLASS__;
}
}
$obj = new Sample();
$obj->getClassName();


Output: Class name is Sample

———

__TRAIT__:

نام trait جاری را برمی‌گرداند.در صورتی که خارج از یک Trait باشید، این کانستنت مقداری خالی برمی‌گرداند. در صورت داشتن Namespace نام تریت همراه با Namespace برگردانده می شود.

trait Sample
{
public function getTraitName() {
echo "Trait name is " . __TRAIT__;
}
}

class Test
{
use Sample;
}

$obj = new Test();
$obj->getTraitName();


Output: Trait name is Sample


———

__METHOD__:

نام متد جاری را به همراه نام کلاس برمی‌گرداند. این برای تشخیص دقیق‌تر متدی که در آن قرار دارید مفید است. در صورت داشتن Namespace نام متد همراه با Namespace برگردانده می شود.

class Sample {
public function getMethodName() {
echo "Method name is " . __METHOD__;
}
}
$obj = new Sample();
$obj->getMethodName();


Output: Method name is Sample::getMethodName


———

__NAMESPACE__:

نام فضای نام (namespace) جاری را برمی‌گرداند. این برای مدیریت کد در پروژه‌های بزرگ که از نیم‌اسپیس‌ها برای جداسازی کد استفاده می‌کنند، مفید است.

namespace Test\MyNamespace;
echo "Namespace name is " . __NAMESPACE__;


Output: Namespace name is Test\MyNamespace


———

ClassName::class:

نام کامل کلاس را برمیگرداند. در صورت داشتن Namespace نام کلاس همراه با Namespace برگردانده می شود.

<?php
class Sample { }
echo Sample::class;


Output: Sample


👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 👍 9
  • ❤ 5
  • 🔥 3
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 &rlm;LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →