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
    ?>
  • 相关阅读:
    拦截器-监听器-过滤器的区别
    实例Rest风格+SpringMVC+中文乱码解决
    Nginx功能详细介绍(大而全)
    Nginx应⽤场景之反向代理
    SpringMVC参数传递之日期类型
    SpringMVC请求参数绑定回顾
    数据输出机制之Model、Map及ModelMap回顾
    ReactHook快速上车
    Chrome性能调优技巧
    移动端适配的最佳实践
  • 原文地址:https://www.cnblogs.com/8000cabbage/p/7440457.html
Copyright © 2011-2022 走看看