PHP define() 函数用于在运行时定义命名常量。
语法
define(constant_name, value, case_insensitive)
参数
constant_name | 必需。 指定常量的名称。 |
value |
|
case_insensitive | 可选。 如果设置为 true,则常量将被定义为不区分大小写。默认区分大小写。 |
注意:通过使用此函数,可以使用保留名称甚至无效名称定义常量,其值只能使用 constant() 函数检索。但是,不建议这样做。
注意:可以定义资源常量,但不建议这样做,可能会导致不可预测的行为。
注意:从 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用,并从 PHP 8.0.0 开始被删除。
返回值
成功时返回 true,失败时返回 false。
示例:define() 示例
下面的示例显示了 define() 函数的用法。
<?php
//定义一个常量
define("Greeting", "Hello world!");
//显示常量的值
echo Greeting."\n";
//引发错误
echo GREETING."\n";
?>
上述代码的输出将是:
Hello world!
PHP Fatal error: Uncaught Error: Undefined constant "GREETING" in Main.php:10
Stack trace:
#0 {main}
thrown in Main.php on line 10
示例:常量具有数组值
考虑下面的示例,其中该函数用于定义具有数组值的常量。
<?php
//用数组值定义常量
define("COLORS", array("Red", "Green", "Blue"));
//显示常量的值
echo COLORS[0]."\n";
echo COLORS[1]."\n";
echo COLORS[2]."\n";
?>
上述代码的输出将是:
Red
Green
Blue
示例:具有保留名称的常量
再考虑一个示例,其中该函数用于定义具有保留名称的常量。
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'Hello World!'));
//显示__LINE__的定义值
var_dump(constant('__LINE__'));
//保留字__LINE__的值
var_dump(__LINE__);
?>
上述代码的输出将是:
bool(false)
bool(true)
string(12) "Hello World!"
int(8)