PHP定义常量define和const的区别

常量是一个简单的标识符。在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量)。常量默认大小写敏感。通常常量标识符总是大写的。

可以用define()函数来定义常量。在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,先前版本const关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或取消定义。

常量只能包含标量数据(boolean、integer、float和string)。可以定义resource常量,但应尽量避免,因为会造成不可预料的结果。

可以简单的通过指定其名字来获得常量的值,与变量不同,不应该在常量的前面加上$符号。如果常量名是动态的,也可以用函数constant()来获取常量的值。用get_defined_contstants()可以获得所有已定义的常量列表。

常量和变量有如下不同:

1、常量前面没有美元符号($)

2、常量只能通过define()函数定义,而不能通过赋值语句

3、常量可以不用理会变量的作用域在任何地方定义和访问

4、常量一旦定义就不能重新定义或取消定义

5、常量的值只能是标量

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = ‘zhouguowei‘;
echo USERNAME;
echo constant("USERNAME");
 
const ZHOUUSERNAME = ‘zhouguowei2222222222‘;
 
define(‘MYUSERNAME‘,‘zhouguowei1111111‘);
echo "<pre>";
print_r(get_defined_constants());  
?>

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

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

0、define定义的常量不受命名空间的限制,而const受限制,同时用const和define()定义一个常量,define定义的值会被const覆盖

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
?>

原文地址:https://www.cnblogs.com/insomniazz/p/8422956.html

时间: 2024-12-10 18:39:50

PHP定义常量define和const的区别的相关文章

PHP中定义常量define与const

我们通常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,也可减少团队开发的出错.那么define和const有什么区别呢? 1.const是一个语言结构:而define是一个函数,可以通过第三个参数来指定是否区分大小写.true表示大小写不敏感,默认为false define('PI', 3.14, true); 2.const简单易读,编译时要比define快很多. 3.const可在类中使用,用于类成员常量定义,定义后不可修改:define不能在类中使用,可用于全局变量

PHP常量详解:define和const的区别

常量是一个简单的标识符.在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量).常量默认大小写敏感.通常常量标识符总是大写的. 可以用define()函数来定义常量.在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,先前版本const关键字只能在类(class)中使用.一个常量一旦被定义,就不能再改变或取消定义. 常量只能包含标量数据(boolean.integer.float和string).可以定义resource常量,但应尽量避免,因为会造成不可预料的结果

PHP常量:define和const的区别

常量,就是一个用于存储“不会(也不允许)变化的数据”的标识符.比如圆周率,在一定的应用场景中,就是一个固定的值(人为规定为某个值).常量默认大小写敏感.通常常量标识符总是大写的. (1)define()函数定义常量.define(‘常量名’, 对应的常量值); (2)const关键字定义常量.const 常量名 = 对应的常量值; 在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,先前版本const关键字只能在类(class)中使用.一个常量一旦被定义,就不能再改变或取消定

define和const的区别

常量是一个简单值的标识符(名字).如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量).常量默认为大小写敏感.通常常量标识符总是大写的. 可以用 define() 函数来定义常量.在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量,先前版本const 关键字只能在类(class)中使用.一个常量一旦被定义,就不能再改变或者取消定义. 常量只能包含标量数据(boolean,integer,float 和 string). 可以定义 r

c++中 #define和const的区别

来源参考:https://blog.csdn.net/yi_ming_he/article/details/70405364 这个区别用从几个角度来说: 角度1: 就定义常量说的话:  const 定义的常数是变量 也带类型, #define 定义的只是个常数 不带类型. 角度2: 就起作用的阶段而言: define是在编译的预处理阶段起作用,而const是在 编译.运行的时候起作用. 角度3: 就起作用的方式而言: define只是简单的字符串替换,没有类型检查.而const有对应的数据类型,

PHP常量定义之define与const对比

简要归纳PHP中两个常量定义关键字的区别: 1.define是函数,const是语言结构,PHP编译时const速度快.2.define只能用在类外,const类内类外皆可.3.define定义的常量是全局的,const定义的常量受命名空间限制.4.define可用在条件语句中,const不能.5.define可用表达式作为名称,const只可采用普通常量名称.6.const只能接受静态的标量,而define可以采用任何表达式.7.const定义的常量时大小写敏感,而define可以通过第三个参

宏定义的define和typedef的区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入. #define 不是语句 不要在行末加分号,否则 会连分号一块置换. 2)typedef是在编译时处理的.它在自己的作用域内给一个已经存在的类型一个别名,但

iOS define 宏定义 和 const定义常量区别

const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定

深入分析php中const和define定义常量的区别

const和define在php中都是定义常量了,但是它们的具体区别是什么?其实非常的简单const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问 页define不能在类中定义而const可以了,下面整理了一篇文章. 大家都知道define是定义常量的,如果在类中定义常量呢?当然不能用define,而用const,如下例: <?php define('PHP', 'I love PHP'); // 在类外面通常这样定义常量 if (defined('P