php类中静态变量与常亮的区别

Posted 奔跑的大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php类中静态变量与常亮的区别相关的知识,希望对你有一定的参考价值。

在效率上:常量编译过程比静态变量快的多。

代码:

<?php
error_reporting(E_ALL);
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变量:类的可变属性

 

以上是关于php类中静态变量与常亮的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android让屏幕保持常亮的三种方法

php中的魔术方法(Magic methods)和魔术常亮

PHP的类中的常量,静态变量的问题。

java中静态代码块(static{...}),局部代码块(方法中{...}),构造代码块(类中{...})区别。

Java 局部变量实例变量类变量(静态变量)区别

PHP static关键字和self关键字的区别