В руководстве по константам PHP мы узнали, как определять и использовать константы в PHP-скриптах.
Кроме того, PHP также предоставляет набор специальных предопределенных констант, которые меняются в зависимости от того, где они используются. Эти константы называются магическими константами. Например, значение __LINE__
зависит от строки, в которой оно используется в вашем скрипте.
Магические константы начинаются с двух знаков подчеркивания и заканчиваются двумя знаками подчеркивания. В этом разделе описаны некоторые из самых полезных магических констант PHP.
__LINE__
Константа __LINE__
возвращает текущий номер строки файла, например:
<?php
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 2
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 3
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 4
?>
__FILE__
Константа __FILE__
возвращает полный путь и имя исполняемого PHP-файла. Если используется внутри включения (include), возвращается имя включенного файла.
<?php
// Отображает абсолютный путь к этому файлу
echo "The full path of this file is: " . __FILE__;
?>
__DIR__
Константа __DIR__
возвращает каталог файла. Если используется внутри включения (include), возвращается каталог включаемого файла. Вот пример:
<?php
// Отображает каталог этого файла
echo "The directory of this file is: " . __DIR__;
?>
__FUNCTION__
Константа __FUNCTION__
возвращает имя текущей функции.
<?php
function myFunction(){
echo "The function name is - " . __FUNCTION__;
}
myFunction(); // Выводит: The function name is - myFunction
?>
__CLASS__
Константа __CLASS__
возвращает имя текущего класса. Вот пример:
<?php
class MyClass
{
public function getClassName(){
return __CLASS__;
}
}
$obj = new MyClass();
echo $obj->getClassName(); // Выводит: MyClass
?>
__METHOD__
Константа __METHOD__
возвращает имя текущего метода класса.
<?php
class Sample
{
public function myMethod(){
echo __METHOD__;
}
}
$obj = new Sample();
$obj->myMethod(); // Выводит: Sample::myMethod
?>
__NAMESPACE__
Константа __NAMESPACE__
возвращает имя текущего пространства имен.
<?php
namespace MyNamespace;
class MyClass
{
public function getNamespace(){
return __NAMESPACE__;
}
}
$obj = new MyClass();
echo $obj->getNamespace(); // Выводит: MyNamespace
?>