在本教程中,您将学习如何使用PHP魔术常量。
什么是魔术常量
在PHP常量一章中,我们学习了如何在PHP脚本中定义和使用常量。
此外,PHP还提供了一组特殊的预定义常量,这些常量根据使用它们的位置而变化。这些常量称为魔术常量。例如,__line__的值取决于它在脚本中使用的行。
魔术常量以两个下划线开头,以两个下划线结尾。以下部分描述了一些最有用的PHP魔术常量。
__LINE__
__LINE__常量返回文件的当前行号,如下所示:
<?php
echo "Line number " . __LINE__ . "<br>"; // 输出: Line number 2
echo "Line number " . __LINE__ . "<br>"; // 输出: Line number 3
echo "Line number " . __LINE__ . "<br>"; // 输出: Line number 4
?>
__FILE__
__FILE__常量返回正在执行的PHP文件的完整路径和名称。如果在include中使用,则返回包含文件的名称。
<?php
//显示此文件的绝对路径
echo "此文件的完整路径为: " . __FILE__;
?>
__DIR__
__DIR__常量返回文件的目录。如果在include中使用,则返回包含文件的目录。这是一个实例:
<?php
// 显示此文件的目录
echo "此文件的目录为: " . __DIR__;
?>
__FUNCTION__
__FUNCTION__常量返回当前函数的名称。
<?php
function myFunction(){
echo "函数名称是 - " . __FUNCTION__;
}
myFunction(); // 输出: 函数名称是 - 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
?>