define 定义一个常量

发表日期:2021-07-01 10:15:42 | 来源: | | 浏览(844) 分类:杂项 函数

define

(PHP 4, PHP 5, PHP 7, PHP 8)

define定义一个常量

说明

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

在运行时定义一个常量。

参数

constant_name

常量名。

注意:

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

value

常量的值。在 PHP 5 中,value 必须是 scalar 值(intfloatstringbooleannull)。在 PHP 7 中, array 值也被允许。

警告

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

case_insensitive

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

警告

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

注意:

不区分大小写的常量以小写的形式储存。

返回值

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

更新日志

版本 说明
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" 并导致 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"?>

示例 #2 以保留名称定义常量

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

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

以上例程会输出:

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

参见

  • defined() - 检查某个名称的常量是否存在
  • constant() - 返回一个常量的值
  • 关于 常量 的章节

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。