(PHP 4, PHP 5, PHP 7, PHP 8)
define — 定義一個(gè)常量
在運(yùn)行時(shí)定義一個(gè)常量。
constant_name
常量名。
注意:
可以用 define() 定義保留關(guān)鍵詞甚至無(wú)效名稱的常量,它的值可以(僅可以)通過(guò) constant() 獲取。 不過(guò),不推薦這么做。
value
常量的值。在 PHP 5 中,value
必須是
scalar 值(int、
float、string、boolean 或
null
)。在 PHP 7 中, array 值也被允許。
常量還可以定義為 resource 類型,但并不推薦這樣做,因?yàn)榭赡軙?huì)有不可預(yù)知的行為發(fā)生。
case_insensitive
如果設(shè)置為 true
,則該常量不區(qū)分大小寫。默認(rèn)是區(qū)分大小寫的。比如,
CONSTANT
和 Constant
代表了不同的值。
PHP 7.3.0 起廢棄了定義不區(qū)分大小寫的常量。
注意:
不區(qū)分大小寫的常量以小寫的形式儲(chǔ)存。
成功時(shí)返回 true
, 或者在失敗時(shí)返回 false
。
版本 | 說(shuō)明 |
---|---|
7.3.0 |
廢棄了 case_insensitive ,并將在 8.0.0 版中移除。
|
7.0.0 | 允許 array 的值。 |
示例 #1 定義常量
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // 輸出 "Hello world."
echo Constant; // 輸出 "Constant" 并導(dǎo)致 Notice
define("GREETING", "Hello you.", true);
echo GREETING; // 輸出 "Hello you."
echo Greeting; // 輸出 "Hello you."
// PHP 7 起就可以運(yùn)行了
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[1]; // 輸出 "cat"
?>
示例 #2 以保留名稱定義常量
本例子說(shuō)明了以 魔術(shù)常量 相同名稱定義常量的能力。 由于行為結(jié)果過(guò)于令人迷惑,所以實(shí)踐中不推薦。
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>
以上例程會(huì)輸出:
bool(false) bool(true) string(4) "test" int(5)