魔术常量:
魔术常量是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

