当前位置:  首页>> 技术小册>> PHP合辑1-基础入门

魔术常量:魔术常量是在 PHP 中预定义的常量,根据它们的使用基础来使用。这些常量是由各种扩展创建的。PHP 中共有九个魔术常量,所有常量在编译时解析,不像普通常量在运行时解析。有八个魔术常量以双下划线(__)开头和结尾。

以下是所有常量及其示例代码:

line:这个魔术常量返回文件的当前行号。如果你在程序文件中的某个地方使用这个魔术常量,它会在编译时显示行号。
语法:

  1. .__line__

示例:

  1. <?php
  2. echo "行号是:" . __line__;
  3. ?>

输出:

  1. 行号是:3

file:这个魔术常量返回执行的文件的完整路径和文件名。
语法:

  1. .__file__

示例:

  1. <?php
  2. echo "文件名是:" . __file__;
  3. ?>

输出:

  1. 文件名是:/home/3d27a639c57aaed9efa5880e613bc273.php

dir:这个魔术常量返回执行的文件所在的目录。
语法:

  1. .__dir__

示例:

  1. <?php
  2. echo "目录是:" . __dir__;
  3. ?>

输出:

  1. 目录是:/home

function:这个魔术常量返回包含此魔术常量的函数的名称。
语法:

  1. .__function__

示例:

  1. <?php
  2. function Geeks(){
  3. echo "函数名是:" . __function__;
  4. }
  5. Geeks();

?>
输出:

  1. 函数名是:Geeks

class:这个魔术常量返回包含此魔术常量的类的名称。
语法:

  1. __class__

示例:

  1. <?php
  2. class Geeks
  3. {
  4. public function getClassName(){
  5. return __class__;
  6. }
  7. }
  8. $obj = new Geeks();
  9. echo $obj->getClassName();
  10. ?>

输出:

  1. Geeks

method:这个魔术常量返回包含此魔术常量的方法的名称。
语法:

  1. __method__

示例:

  1. <?php
  2. class Company
  3. {
  4. public function Geeks(){
  5. return __method__;
  6. }
  7. }
  8. $obj = new Company();
  9. echo $obj->Geeks();
  10. ?>

输出:

  1. Company::Geeks

namespace:这个魔术常量返回包含此魔术常量的当前命名空间。
语法:

  1. __namespace__

示例:

  1. <?php
  2. namespace Geeks;
  3. class Company {
  4. public function gfg() {
  5. return __namespace__;
  6. }
  7. }
  8. $obj = new Company();
  9. echo $obj->gfg();
  10. ?>

输出:

  1. Geeks

trait:这个魔术常量返回包含此魔术常量的 trait 名称。
语法:

  1. __trait__

示例:

  1. <?php
  2. trait Geeks{
  3. function gfg(){
  4. echo __trait__;
  5. }
  6. }
  7. class Company{
  8. use Geeks;
  9. }
  10. $a = new Company;
  11. $a->gfg();
  12. ?>

输出:

  1. Geeks

ClassName::class:这个魔术常量返回完全限定的类名。
语法:

  1. ClassName::class

示例:

  1. <?php
  2. namespace Computer_Sciecnec_Portal;
  3. class Geeks{ }
  4. echo Geeks::class; //Classname::class
  5. ?>

输出:

  1. Computer_Sciecnec_Portal\Geeks