美文网首页
类中常量和静态变量的区别

类中常量和静态变量的区别

作者: PENG先森_晓宇 | 来源:发表于2020-01-02 13:44 被阅读0次
<?php
class A {
 
    const c = 9;
    public static $b = 5;
 
    public function setst ($ca) {
        self::$b = $ca;
    }
}
 
$obj = new A;
echo $obj->c;//出错,是类的属性,不是对象的属性
echo $obj->$b;//出错,是类的属性,不是对象的属性
echo $obj::c;//ok,
echo A::c;//ok
echo $obj::$b;//ok
echo A::$b;//ok
$obj->setst(100);//更改静态变量的值
echo $obj::$b;//更改成功

结论

  • 静态变量和常量属于类属性。其他变量属于对象属性或者实例属性

  • 实例的属性才可以用 $obj->c 这种方式访问。

  • 静态变量和常量都是类的属性,类的属性都用双冒号访问(::),通过对象或者类名都可以访问。静态变量和常量随着类加载而加载的,不需要实例化也能访问

  • 常量是不可变的,静态变量可以通过self来赋值改变。

  • const常量:类的不变属性

  • static变量:类的可变属性

相关文章

  • 类中常量和静态变量的区别

    结论 静态变量和常量属于类属性。其他变量属于对象属性或者实例属性。 实例的属性才可以用 $obj->c 这种方式访...

  • 动态链接与运行时常量池

    常量池 方法区存着类的信息,常量和静态变量,即类被编译后的数据。这个说法其实是没问题的,只是太笼统了。更加详细一点...

  • Objective-C添加类属性

    先回顾一下静态变量与全局变量的一些知识。 头文件中定义全局变量和静态变量的区别。 源文件中定义全局变量和静态变量的...

  • kotlin学习笔记——伴生对象与静态成员

    声明一个常量类 在kotlin中调用常量和静态方法 在java中调用常量和静态方法 打印输出(kotin与java...

  • 全局与静态的博弈

    内存中的程序 只读部分 程序中的代码 程序中的常量 可读写部分 .data: 初始化了的全局变量和静态变量 .bs...

  • Java类

    总结一下执行流程就是: 父类静态变量和静态代码块; 子类静态变量和静态代码块; 父类普通成员变量和普通代码块; 父...

  • 什么时候使用静态变量和方法

    静态方法和静态变量在调用时非常方便,使用类名.的方式就可以调用。那什么时候该使用静态变量和静态方法呢? 静态变量在...

  • iOS内存管理

    内存五大区: 代码区:存放我们写的代码 常量区:存储常量字符串和const常量 静态区:存储全局变量和静态变量。在...

  • java代码的执行顺序

    若类还未被加载 先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关...

  • java类何时被加载加载

    创建类的实例 访问类的静态变量(除常量【被final修辞的静态变量】原因:常量一种特殊的变量,因为编译器把他们当作...

网友评论

      本文标题:类中常量和静态变量的区别

      本文链接:https://www.haomeiwen.com/subject/tcebnctx.html