PHP 常量

时间:2018-11-15 13:14:33  来源:igfitidea点击:

在本教程中,我们将学习如何定义PHP常量以及一些常用的内置常量。

PHP 常量介绍

PHP常量的值,如其名称所示,在脚本执行期间不能更改。
要在PHP中定义常量,可以使用define()函数。

按照惯例,常数通常是大写的。与变量不同,常量的名称不以美元符号($)开头。

常量只能包含标量或简单值,如整数、浮点、字符串或布尔值。一旦定义了常量,就可以从脚本中的任何位置访问它。

下面是一个定义常量的例子:

<?php
define('MESSAGE', "这是之路教程 PHP常量");
echo MESSAGE . '<br>';

我们定义了一个名为MESSAGE的常量,用于存储一个字符串。

请注意,您不能像变量那样重新定义或取消设置常数。实际上,经常使用常量来存储在整个应用程序中不会更改的值。

通过变量得到常数的值

有时,您想要获取一个常量的值,但是您不知道它的名称,例如,一个常量名称存储在一个变量中,或者由一个函数返回。

幸运的是,PHP提供了接受常量名称并返回常量值的constant()函数。如果常量还没有定义,则constant()函数将返回null。

下面的例子演示了如何使用constant()函数:

<?php
define('RED', '#FF0000');
define('GREEN', '#00FF00');
define('BLUE', '#0000FF');
 
function getRRB($color)
{
    $code = RED; // 默认颜色
    switch ($color) {
        case 'red': $code = 'RED';
            break;
        case 'green': $code = 'GREEN';
            break;
        case 'blue': $code = 'BLUE';
            break;
    }
    return $code;
}
 
$colorCode = getRRB('green');
 
echo '绿色的RGB是 ' . constant($color_code);

检查是否定义了常量

有时,在使用常量之前检查它是否已定义是非常有用的。

要检查是否定义了常量,可以使用defined()函数。
如果常量存在,则defined()函数返回true,否则返回false。

<?php
define('MAX_SIZE', 2014);
 
if (defined('MAX_SIZE')) {
    echo "定义了常量MAX_SIZE";
} else {
    echo "常量MAX_SIZE还没有定义";
}

PHP预定义的魔法常量

PHP预定义了一些非常有用的常量,这些常量以双下划线(__)开头和结尾。例如,__file__常量保存正在执行的PHP文件的名称,而__line__常量保存文件的当前行号。

<?php
   echo 'Executing line ' . __LINE__ .' of the file ' . __FILE__;

其他PHP预定义的魔法常量如下:

__DIR__当前脚本文件的目录。
__FUNCTION__当前函数名。
__CLASS__当前包含命名空间的类名。
__TRAIT__当前的trait名称。
__METHOD__类的当前方法名。
__NAMESPACE__当前名称空间的名称。