zoukankan      html  css  js  c++  java
  • PHP中的Define和Const区别

    我们经常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,那么define和const有什么区别呢?

    常量是一个简单的标识符。在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量)。常量默认大小写敏感。通常常量标识符总是大写的。

    可以用define()函数来定义常量。在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,php7可以定义数组常量了,先前版本const关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或取消定义。

    <?php
    // 以下代码在 PHP 5.3.0 后可以正常工作
    const USERNAME = '周伯通';
    echo USERNAME.PHP_EOL;
    echo constant("USERNAME");
    
    const ZHOUUSERNAME = '周伯通九阴真经';
    
    define('MYUSERNAME','周伯通九阴真经2');
    echo "<pre>";
    print_r(get_defined_constants());
    ?>

    常量和变量有如下不同:

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

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

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

    <?php
    class MyClass
    {
        const USER = '周伯通';
    
        function showConstant() {
            echo  self::USER . PHP_EOL;
            echo  constant('USER'); // 注意:Warning: constant(): Couldn't find constant USER
        }
    }
    $class = new MyClass();
    $class->showConstant();

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

    <?php
    $x = true;
    if ($x==1){
        //const FOO = 'BAR';    // 无效的invalid
    }
    if ($x==1){
        define('FOO', 'BAR'); // 有效的valid
        echo FOO;
    }
  • 相关阅读:
    18款在线代码片段测试工具
    毫秒必争,前端网页性能最佳实践
    如何判断Javascript对象是否存在
    推荐10款免费的在线UI测试工具
    揭开Socket编程的面纱
    使用 jQuery Ajax 在页面滚动时从服务器加载数据
    对Android开发者有益的40条优化建议
    web api+递归树型结构
    asp.net Lodop实现批量打印
    asp.net lodop单个打印
  • 原文地址:https://www.cnblogs.com/phpper/p/9234553.html
Copyright © 2011-2022 走看看