魔术常量:魔术常量是在 PHP 中预定义的常量,根据它们的使用基础来使用。这些常量是由各种扩展创建的。PHP 中共有九个魔术常量,所有常量在编译时解析,不像普通常量在运行时解析。有八个魔术常量以双下划线(__)开头和结尾。
以下是所有常量及其示例代码:
line:这个魔术常量返回文件的当前行号。如果你在程序文件中的某个地方使用这个魔术常量,它会在编译时显示行号。
语法:
.__line__
示例:
<?php
echo "行号是:" . __line__;
?>
输出:
行号是:3
file:这个魔术常量返回执行的文件的完整路径和文件名。
语法:
.__file__
示例:
<?php
echo "文件名是:" . __file__;
?>
输出:
文件名是:/home/3d27a639c57aaed9efa5880e613bc273.php
dir:这个魔术常量返回执行的文件所在的目录。
语法:
.__dir__
示例:
<?php
echo "目录是:" . __dir__;
?>
输出:
目录是:/home
function:这个魔术常量返回包含此魔术常量的函数的名称。
语法:
.__function__
示例:
<?php
function Geeks(){
echo "函数名是:" . __function__;
}
Geeks();
?>
输出:
函数名是:Geeks
class:这个魔术常量返回包含此魔术常量的类的名称。
语法:
__class__
示例:
<?php
class Geeks
{
public function getClassName(){
return __class__;
}
}
$obj = new Geeks();
echo $obj->getClassName();
?>
输出:
Geeks
method:这个魔术常量返回包含此魔术常量的方法的名称。
语法:
__method__
示例:
<?php
class Company
{
public function Geeks(){
return __method__;
}
}
$obj = new Company();
echo $obj->Geeks();
?>
输出:
Company::Geeks
namespace:这个魔术常量返回包含此魔术常量的当前命名空间。
语法:
__namespace__
示例:
<?php
namespace Geeks;
class Company {
public function gfg() {
return __namespace__;
}
}
$obj = new Company();
echo $obj->gfg();
?>
输出:
Geeks
trait:这个魔术常量返回包含此魔术常量的 trait 名称。
语法:
__trait__
示例:
<?php
trait Geeks{
function gfg(){
echo __trait__;
}
}
class Company{
use Geeks;
}
$a = new Company;
$a->gfg();
?>
输出:
Geeks
ClassName::class:这个魔术常量返回完全限定的类名。
语法:
ClassName::class
示例:
<?php
namespace Computer_Sciecnec_Portal;
class Geeks{ }
echo Geeks::class; //Classname::class
?>
输出:
Computer_Sciecnec_Portal\Geeks