在php中定义常量时,const与define的区别

【问】在php中定义常量时,const与define的区别?

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

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

(2).const可在类中使用,define不能。

(3).const不能在条件语句中定义常量。

例如:

if (...){

const FOO = ‘BAR‘;  // 无效的invalid

}

if (...) {

define(‘FOO‘, ‘BAR‘); // 有效的valid

}

(4).const采用一个普通的常量名称,define可以采用表达式作为名称。 

const  FOO = ‘BAR‘;

for ($i = 0; $i < 32; ++$i) {

define(‘BIT_‘ . $i, 1 << $i);

}

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

例如:

const BIT_5 = 1 << 5;  // 无效的invalid

define(‘BIT_5‘, 1 << 5); // 有效的valid

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

例如:

define(‘FOO‘, ‘BAR‘, true);

echo FOO; // BAR

echo foo; // BAR

原文地址:https://www.cnblogs.com/xiaoleiel/p/8324290.html

时间: 2024-08-29 11:19:08

在php中定义常量时,const与define的区别的相关文章

php 中const和 define的区别

在php中定义常量时,可用到const与define这两种方法,那他们到底有什么区别呢? 1.const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量. 2.const可在类中使用,define不能. 3.const不能在条件语句中定义常量. 如:if(constition){ 哲理不能用const,只能用define } 4.const只能接受静态的标量,而define可采用任何的表达式. const BIT_5 = 1 << 5;    //

详解PHP中const和define的区别

在PHP中定义常量时,可用const与define这两种方式,那他们到底有什么区别呢? const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问. define不能定义在类中,而const必须定义在类中,并且const定义的变量必须通过类名::变量名来进行访问. const不能在条件语句中定义常量. const采用一个普通的常量名称(静态的标量),define可以采用任何表达式作为名称. const 总是大小写敏感,然而define()可以通过第三个参

Java中定义常量方法及建议(Class/Interface)

Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100; ...... } 采用“类.常量名”方法进行调用.需要私有化构造方法,避免创建该类的实例.同时不需让其他类继承该类. 如果多处需要访问工具类中定义的常量

PHP中定义常量

PHP中定义常量的方式如下: define(常量名,常量值); //定义常量PUBLISHER define('PUBLISHER', "O'Reilly & Associates"); echo PUBLISHER; 注意,常量名PUBLISHER的分号是可以不用写的 原文地址:https://www.cnblogs.com/chaoguo1234/p/9538996.html

php中const与define的区别

1 版本差异: const 要求php的版本>5.3.0 define 可以兼容php4,php5 等版本 2 定义的位置区别: const关键字定义的常量是在编译时定义的,因此const关键字定义常量必须处于最顶端的作用区域 (意味着不能在函数内.循环内以及if语句之内用const来定义常量) 函数define()  定义的常量是在执行define()函数时定义的,因此可以在函数内.循环内.if语句内等函数能够被调用的任何地方使用define()函数定义常量 3 对值的表达式支持的差异: co

php中 const 与define()的区别 ,选择

来自: http://stackoverflow.com/questions/2447791/define-vs-const 相同点: 两者都可以定义常量 const FOO = 'BAR'; defind('FOO','BAR'); const 的劣势之处: 1.const 必须被声明在top-level-scope中(顶级域).. 例如: if(condition) { const FOO ='BAR'; //未定义 } //但是 if(condition) { defind('FOO','

C++ 中 const和define的区别

来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用const定义的常变量.符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元.而常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof运算符测出其长度.与一般变量惟一的不同是指定变量的值不能改

js类定义函数时用不用prototype的区别?

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下:      function ListCommon2(first,second,third) {   this.First=function () {  alert("first do"+first); } }  ListCommon2.do1=function(first) {    //   this.First();  alert("first do"+first); } List

const与#define的区别、优点

const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开. 补充:预处理器根据以#开头的命令,修改原始的程序.比如我们常见的#include <stdio.h>命令告诉处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中.咱们的#define也是,仅仅是单纯的文本替换. const常量是编译运行阶段使用. 类型和安全检查不同 define宏没有数据类型,不做任何类型检查,仅仅是展开. const常量有具体的数据类型,在编译阶段会执行类型检查. 存储方