zoukankan      html  css  js  c++  java
  • PHP常量详解:define和const的区别

    转载自周国伟的博客

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

    如果常量名是动态的,也可以用函数constant()来获取常量的值。用get_defined_contstants()可以获得所有已定义的常量列表。

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

    define('aaa','bbb'); //在类外部声明与明明空间没有关系

    const aaa='bbb'; //受命名空间影响

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

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

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

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

    4,命名空间的区别

    <?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
    ?>
  • 相关阅读:
    Synchronized 锁 批量重偏向 和批量撤销
    Synchronize 偏向锁,轻量级锁升级和撤销过程,对象头的变化
    JAVA 对象到底有什么
    什么是操作系统虚拟地址
    从C角度看 i = i+ 1本质
    Linux操作系统的三种锁机制
    SpringCloud启动过程中如何完成Nacos服务注册
    Nacos源码一
    JAVA线程的本质
    SpringCloud启动-Nacos服务注册
  • 原文地址:https://www.cnblogs.com/8000cabbage/p/7440457.html
Copyright © 2011-2022 走看看