static 关键字

  • 初始化:

           1.变量

                初始化时 可以初始化为 基本常量 如数字,字符 ,数组等

               ex: static $a = 1 , static $a = array() 等

               但不可以初始化为变量,对象 ,表达式 ,函数返回值等

               ex: $b = 1; static $a = $b , static $a = new obj() 等

  • 赋值:

           1.变量:static 可以赋予任何值 ,与一般变量一致

  • 调用:
  1. 修饰成员变量

              类名::变量名 ,self(parent)::变量名 , static::变量名

             注意 :不可以使用 $this -> 变量名 或者 $obj -> 变量名

  1. 修饰方法

             类名::方法名 , self(parent):: 方法名 , static::方法名 , $this -> 方法名 或者 $obj -> 方法名

  • 作用域:
  1. 修饰方法

静态方法 内不可以使用 $this 调用其他非静态方法 或者其他成员变量。

但可以新建一个对象然后调用其方法或者成员变量。

ex: $a = new ObjA(); $a -> a;

  • 继承:

父类的静态变量 在子类中不可修改为其他非静态变量

ex: class A {public static $a = 1} class A extends B{ public $a = 1}

但可以重新初始化

ex class A {public static $a = 1} class A extends B{ public static $a = 0}