PHP常量

规则

  • 常量是一个简单值的标识符。该值在脚本中不能改变。
  • 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
  • 注意: 常量在整个脚本中都可以使用。

define() 函数

设置常量,使用 define() 函数

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

该函数有三个参数:

  • name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。注:PHP 7.3.0 起废弃了定义大小写不敏感的常量,并将在 8.0.0 版中移除。

例:

define("GREETING", "欢迎访问 csdn.com");
echo GREETING;    // 输出 "欢迎访问 csdn.com"

const

使用 const 关键字定义常量时,PHP 5.6 之前只能包含标量数据(boolean,integer,float 和 string)。从 PHP 5.6 开始,可以将常量定义为一个表达式,也可以定义为一个 array。还可以定义 resource 为常量,但应尽量避免,因为可能会造成不可预料的结果。

// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';

echo CONSTANT;

// PHP 5.6.0 后的写法
const ANOTHER_CONST = CONSTANT.'; Goodbye World';
echo ANOTHER_CONST;

const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // 将输出 "cat"

// PHP 7 中的写法
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // 将输出 "cat"

注意:和使用 define() 来定义常量相反的是,使用 const 关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及 if 或 try/catch 语句之内用 const 来定义常量。

常量和变量有如下不同

  • 常量前面没有美元符号($);
  • PHP 5.3 之前,常量只能用 define() 函数定义,而不能通过赋值语句;
  • 常量可以不用理会变量的作用域而在任何地方定义和访问;
  • 常量一旦定义就不能被重新定义或者取消定义;
  • 常量的值只能是标量值。从 PHP 5.6 开始可以用 const 关键字来定义数组常量,从 PHP 7 开始也可以用 define() 函数来定义。你可以在常量标量表达式中使用数组(例如 const FOO = array(1,2,3)[0];),但是要求最终的结果必须是一个允许的类型的值。

魔术常量

所谓的魔术常量,它们其实不是常量。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 LINE 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值