zoukankan      html  css  js  c++  java
  • static和const关键字的使用

    static关键字在类中描述的成员属性和成员函数都是静态的。

    static成员能限制外部的访问,因为static成员是属于类的,而不是属于任何对象实例。

    从内存的角度讲,其中对象是放在“堆内存”中,对象的引用是放在“栈内存”中,而静态成员被放在初始化静态段中,在类的第一次加载的时候加入的。可以让对内存中的所有对象所共享。如下图所示:

    <?php
    class
    Person{ public static $myCountry = "中国"; public static function say(){ echo "我的祖国是:".self::$myCountry."<br>"; } }
    //输出静态属性 echo Person::$myCountry.
    "<br>"; //调用静态方法
    Person::say();
    //修改静态属性 Person::$myCountry
    = "中国-江苏"; echo Person::$myCountry."<br>";
    ?>
    输出结果为:
    中国
    我的祖国是:中国
    中国-江苏

    类中的静态方法只能访问类的静态的属性。类中的静态的方法是不能访问类的非静态的成员的。我们用self来访问类中的静态属性。self与$this相似,只不过self代表静态方法所在的类,$this引用指针,代表调用此方法的对象。静态方法是不用对象调用的,所有就没有$this这个引用了。没有$this,就没办法调用类中的其他的成员属性。


    const是一个定义常量的关键字。在类里面常用const来定义常量。用“const”修饰的成员属性的访问方式和“static”修饰的成员访问的方式差不多,也是使用“类名”,在方法里面使用“self”关键字。但是不用使用“$”符号,也不能使用对象来访问。

    <?php
    class MyClass{
        const constant = 'constant value';
        function showConstant(){
            //方法中调用常量,没有$
            echo self::constant."<br>";
        }
    }
    //类直接调用,没有$
    echo MyClass::constant."<br>";
    $class = new MyClass();
    $class ->showConstant();
    ?>
  • 相关阅读:
    车载OS盘点及特点分析一:车载OS几大系统介绍
    CTF常用软件/工具
    汽车软件产业研究报告(2020年)
    高级加密标准(AES)分析
    工具 | CTP、SimNow、NSight、快期
    CTF之图片隐写术解题思路
    V2X和车路协同研究:5G V2X将成为数字座舱标配
    腾讯安全正式发布《IoT安全能力图谱》
    Microsoft Remote Desktop Beta 下载地址
    密码学初探|加密模式
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2644300.html
Copyright © 2011-2022 走看看