PHP魔术常量与预定义常量

在 PHP 中,我们除了可以自己定义常量之外,系统还为我们提供了许多内置的常量——预定义常量,这些预定义常量我们无需定义即可拿来使用。

预定义常量

预定义常量顾名思义也就是 PHP 中预先定义好的常量,使用这些预定义常量可以帮助我们来获取一些 PHP 中的信息,比如,我们可以使用预定义常量来获取当前电脑的操作系统,当前使用的 PHP 版本信息等等。另外需要注意的是预定义常量是区分大小写的

下面列举了一些 PHP 中的预定义常量:
  • PHP_VERSION:当前 PHP 的版本号;
  • PHP_OS:当前的操作系统名称;
  • PHP_EOL:系统换行符,Windows 是(\r\n),Linux 是(\n),MAC 是(\r);
  • PHP_INT_MAX:当前 PHP 支持的最大整数;
  • PHP_INT_MIN:当前 PHP 支持的最小整数;
  • PHP_EXTENSION_DIR:PHP 的扩展目录;
  • TRUE:布尔类型的 true;
  • FALSE:布尔类型的 false;
  • NULL:Null 值。

魔术常量

魔术常量属于特殊的预定义常量,这些常量可以根据它们的使用位置而变化。魔术常量通常以两个下划线__开头,并以两个下划线__结尾。

PHP 中魔术常量有八个,如下所示:
  • __LINE__ :文件中的当前行号;
  • __FILE__:当前文件的绝对路径(包含文件名);
  • __DIR__:当前文件的绝对路径(不包含文件名),等价于 dirname(__FILE__);
  • __FUNCTION__:当前函数(或方法)的名称;
  • __CLASS__:当前的类名(包括该类的作用区域或命名空间);
  • __TRAIT__:当前的 trait 名称(包括该 trait 的作用区域或命名空间);
  • __METHOD__:当前的方法名(包括类名);
  • __NAMESPACE__:当前文件的命名空间的名称。

注意:与预定义常量不同,魔术常量是不区分大小写的。

下面通过一个简单的示例来演示一下预定义常量的使用,具体代码如下:
<?php
    echo "当前文件的路径:".__FILE__;
    echo "<br/>当前的行数:".__LINE__;
    echo "<br/>当前PHP的版本信息:".PHP_VERSION;
    echo "<br/>当前的操作系统:".PHP_OS;
?>
运行结果如下:

当前文件的路径:D:\install\phpstudy\WWW\index.php
当前的行数:3
当前PHP的版本信息:7.3.4
当前的操作系统:WINNT