Php/docs/function.define

来自菜鸟教程
跳转至:导航、​搜索

define

(PHP 4, PHP 5, PHP 7)

define定义一个常量


说明

define ( string $name , mixed $value [, bool $case_insensitive = false ] ) : bool

在运行时定义一个常量。


参数

name

常量名。

Note:

可以用 define() 定义保留关键词甚至无效名称的常量,并且可以(仅可以)通过 constant() 获取值。 不过,不推荐这么做。

value

常量的值;在 PHP 5 中,value 必须是标量( intfloatstringbooleannull)在 PHP 7 中还允许是个 array 的值。

Warning

常量还可以定义为 resource 类型,但并不推荐这样做,因为可能会有不可预知的行为发生。

case_insensitive

如果设置为 true,该常量则大小写不敏感。默认是大小写敏感的。比如, CONSTANTConstant 代表了不同的值。

Warning

PHP 7.3.0 起废弃了定义大小写不敏感的常量。

Note:

大小写不敏感的常量以小写的方式储存。


返回值

成功时返回 true, 或者在失败时返回 false


更新日志

版本 说明
7.3.0 废弃了 case_insensitive,并将在 8.0.0 版中移除。
7.0.0 允许 array 的值。


范例

Example #1 定义常量

<?phpdefine("CONSTANT", "Hello world.");echo CONSTANT; // 输出 "Hello world."echo Constant; // 输出 "Constant" 并导致 Noticedefine("GREETING", "Hello you.", true);echo GREETING; // 输出 "Hello you."echo Greeting; // 输出 "Hello you."//  PHP 7 起就可以运行了define('ANIMALS', array(    'dog',    'cat',    'bird'));echo ANIMALS[1]; // 输出 "cat"?>

Example #2 以保留名称定义常量

本例子说明了以 魔术常量 相同名称定义常量的能力。 由于行为结果过于令人迷惑,所以实践中不推荐。


<?phpvar_dump(defined('__LINE__'));var_dump(define('__LINE__', 'test'));var_dump(constant('__LINE__'));var_dump(__LINE__);?>

以上例程会输出:


bool(false)
bool(true)
string(4) "test"
int(5)

参见