魔术常量:
魔术常量是PHP中预定义的常量, 它们是根据其用法使用的。这些常量是由各种扩展创建的。 PHP中有9个魔术常量, 所有常量在编译时都可以解析, 这不同于在运行时解析的常规常量。有八个魔术常量以双下划线(__)开头和结尾。
下面列出了所有常量以及示例代码:
__line__:
这个魔术常量返回文件的当前行号。如果你在程序文件中的某个位置使用此魔术常量, 则此常量将在编译时显示行号。
语法如下:
.__line__
例子:
<?php
echo "The Line number is : " . __line__ ;
?>
输出如下:
The Line number is : 3
__file__:
这个魔术常量返回执行文件的完整路径以及文件名。
语法如下:
.__file__
例子:
<?php
echo "The file name is : " . __file__ ;
?>
输出如下:
The file name is : /home/3d27a639c57aaed9efa5880e613bc273.php
__dir__:
这个魔术常量返回执行文件的目录。
语法如下:
.__dir__
例子:
<?php
echo "The directory is : " . __dir__;
?>
输出如下:
The directory is : /home
__function__:
该魔术常量返回包含该魔术常量的函数的名称。
语法如下:
.__function__
例子:
<?php
function Geeks(){
echo "The function name is : " . __function__ ;
}
Geeks();
?>
输出如下:
The function name is : 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 lsbin(){
return __method__ ;
}
}
$obj = new Company();
echo $obj ->lsbin();
?>
输出如下:
Company::lsbin
__namespace__:
此魔术常量返回包含此魔术常量的当前名称。
语法如下:
__namespace__
例子:
<?php
namespace lsbin;
class Company {
public function gfg() {
return __namespace__;
}
}
$obj = new Company();
echo $obj ->gfg();
?>
输出如下:
lsbin
__trait__:
该魔术常量返回包含该魔术常量的特征名称。
语法如下:
__trait__
例子:
<?php
trait lsbin{
function gfg(){
echo __trait__;
}
}
class Company{
use lsbin;
}
$a = new Company;
$a ->gfg();
?>
输出如下:
lsbin
ClassName :: class:
该魔术常量返回完全限定的类名称。
语法如下:
ClassName::class
例子:
<?php
namespace Computer_Sciecnec_Portal;
class Geeks{ }
echo Geeks:: class ; //Classname::class
?>
输出如下:
Computer_Sciecnec_Portal\Geeks
参考: https://www.php.net/manual/en/language.constants.predefined.php