PHP 杂项函数

PHP define() 函数用于在运行时定义命名常量。

语法

define(constant_name, value, case_insensitive) 

参数

constant_name必需。 指定常量的名称。
value

必填。 指定常量的值。

在 PHP 5 中,值必须是标量值(int、float、string、bool 或 null)。在 PHP 7 中,也接受数组值。
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)