小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
您的位置:首页 > 后端编程 > PHP > PHP基础

PHP常量,定义常量的两种方式define和const,以及它们的区别

分类: PHP基础47个赞

什么是常量?

在整个运行过程中,固定不变的值,常量不能重新定义


PHP怎么定义常量?

(define和const2种方式)

注意:

常量名前没有$符

常量名推荐使用大写


1、用define()函数定义常量

define(常量名,值,[是否区别大小写])  
define(常量名,值,true或false);
//true表示不区分大小写,默认是false


//true表示不区分大小写,默认是区分大小写的。


2、还可以使用const关键字定义常量

const NAME='tom';
echo NAME;      //tom


3、定义常量可以用特殊字符,但是在调用的时候必须用`constant`关键字调用

define('%-%','tom');
echo constant('%-%');       //通过constant获取特殊字符作为常量名的常量


4、判断常量是否定义,通过defined()判断常量是否已经定义,注意:是defined,多了个d

if(!defined('NAME')){   
    define('NAME','berry');
}
echo NAME;  //berry


问:在php中定义常量时,const和define的区别?


答:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。


1、const用于类成员变量的定义,一经定义,不可修改。define不可以用于类成员变量的定义,可用于全局常量。


2、const可在类中使用,define不能


3、const不能再条件语句中定义常量

<?php
if (...){
const FOO = 'BAR';    // 无效的invalid
}
if (...) {
define('FOO', 'BAR'); // 有效的valid
}
?>

4、const采用普通的常量名称,define可以采用表达式作为名称

<?php
const  FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
define('BIT_' . $i, 1 << $i);
}
?>


5、const只能接受静态的标量,而define可以采用任何表达式

<?php
const BIT_5 = 1 << 5;    // 无效的invalid
define('BIT_5', 1 << 5); // 有效的valid
?>

6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

<?php
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR
?>


小米技术社区