
Доброго времени суток. В данной статье мы рассмотрим встроенные константы php и научимся с ними работать.
Начнем с самой используемой константы __DIR__
echo __DIR__;
Эта константа выводим полный путь до директории в которой расположен данный файл в котором мы к ней обратились.
Как видите для вызова встроенных(волшебных) констант используется знаки нижнего подчеркивания - __Название волшебной константы__.
Мы также можем получить полный путь до текущего файла
echo __FILE__;
используя константу __FILE__.
С помощью константы __LINE__
echo __LINE__;
мы получим номер строки файла в которой была вызвана данная константа. Это удобно использовать при отладке когда мы работаем с большими кусочками кода. Пример:
echo 'Функция myFunction: '.((int)__LINE__+1).' строка';
function myFunction(){
echo __FUNCTION__;
}
myFunction();
c помощью константы __FUNCTION__ мы получаем название функции в которой мы обратились к данной константе. Причем если у нас в данном документе используется пространство имен. То вернется:
название пространcтво имен \ название функции
Кто не знает что такое пространство имен в php переходите для ознакомления по этой ссылке
Пространство имен в phpЕдем дальше. Для определения имени вызываемого класса мы можем воспользоваться константой __CLASS__
class myClass{
public function __construct()
{
echo __CLASS__;
}
}
$myClass = new myClass();
здесь мы получим имя класса.
Мы также можем получить название используемого метода класса и даже трейта:
class myClass{
public function myMethod(){
echo __METHOD__;
}
}
$myClass = new myClass();
заметьте что при получении названия метода через константу __METHOD__ мы автоматически получаем название его класса.
Для получении названия метода трейта нам нужно воспользоваться константой __TRAIT__
trait myTrait{
function myMethodTrait(){
echo __TRAIT__;
}
}
class myClass{
use myTrait;
}
$myClass = new myClass();
$myClass->myMethodTrait();
Заметьте что название класса мы уже не получаем так как метод трейта ему не принадлежит.
Что такое трейты и как с ними работать вы можете узнать в данной статье
Трейты в phpИ напоследок рассмотрим константу __NAMESPACE__
namespace myNamespace;
echo __NAMESPACE__;
С помощью нее вы можете узнать название пространства имен используемое в данном контексте документа.
На этом дорогие друзья данная статья подошла к концу.
Желаю вам успехов и удачи! Пока!