zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    机器学习: t-Stochastic Neighbor Embedding 降维算法 (二)
    数学辨异 —— 泰勒展开与等比数列求和
    HDU 4705 Y
    C#实现的内存分页机制的一个实例
    java程序获得SqlServer数据表的表结构
    GLSL中的各种变量总结
    HTTP协议学习
    Jedis中的一致性hash
    C语言数据结构----双向链表
    ios7毛玻璃效果实现
  • 原文地址:https://www.cnblogs.com/rendd/p/7118154.html
Copyright © 2011-2022 走看看