PHP中定义常量define与const

我们通常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,也可减少团队开发的出错。那么define和const有什么区别呢?

1、const是一个语言结构;而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false

define(‘PI‘, 3.14, true);

2、const简单易读,编译时要比define快很多。

3、const可在类中使用,用于类成员常量定义,定义后不可修改;define不能在类中使用,可用于全局变量

class MyClass
{
    const CONS = ‘常量值‘;

    function showConstant() {
        echo  self::CONS . PHP_EOL;
        echo  constant(‘CONS‘);
    }
}

4、const是在编译时定义,因此必须处于最顶端的作用区域,不能在函数,循环及if条件中使用;而define是函数,也就是能调用函数的地方都可以使用

if (...){
const FOO = ‘BAR‘;    // 无效的invalid
}
if (...) {
define(‘FOO‘, ‘BAR‘); // 有效的valid
}

5、const只能用普通的常量名,define常量名中可以有表达式

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

6、const定义的常量只能是静态常量,define可以是任意表达式

const BIT_5 = 1 << 5;    // valid since PHP 5.6
define(‘BIT_5‘, 1 << 5); // 有效的valid
时间: 2024-12-24 21:41:23

PHP中定义常量define与const的相关文章

PHP定义常量define和const的区别

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

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

[问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很多. (1).const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量. (2).const可在类中使用,define不能. (3).const不能在条件语句中定义常量. 例如: if (...){ const FOO = 'BAR';  // 无效的

PHP中定义常量

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

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

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

在C++中定义常量

在 C++ 中,有两种简单的定义常量的方式: 使用 #define 预处理器. 使用 const 关键字 使用 #define 预处理器: #define identifier value: #include <iostream> using namespace std; #define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n' int main() { int area; area = LENGTH * WIDTH; cout <&l

C++类中定义常量的方法

好久没用过C++,本来就不太熟悉,今天突然写到一个类,需要在类中定义一个常量,居然花了很长时间. 刚开始写了static const int num = 100: 这样是不行的,因为常量只能在初始化列表中初始化,如果去掉const的话,又不能有"常量"的效果, 在类外用宏定义看起来不科学,类外const也一样,后面就大概搜索了一下,可以选择用枚举类型来替代达到 差不多的效果.具体的代码看下面: class User{ public: enum { MaxNum = 20}; } 写下来

JAVA中定义常量的3种方式

1.最古老的 //未处理 public static final int PROCESS_STATUS_UNTREATED = 0; //已接收 public static final int PROCESS_STATUS_ACCPECTED = 1; //已处理 public static final int PROCESS_STATUS_PROCESSED = 2; 2.改进版的 public static final class PROCESS_STATUS{ //未处理 public s

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可以通过第三个参

const(每个对象中的常量), static const(类的编译时常量)

1 #include <iostream> 2 using namespace std; 3 4 class Values 5 { 6 private: 7 8 //类里的 9 const int cSize; //常量成员的初始化,必须在构造函数中进行,每个对象都有,只是成员常量数据在初始化就不能改变 10 11 12 //禁止在类内对"非const的静态成员"进行初始化 13 //static int sFloat = 100; //Values.cpp:8:24: e