static 关键字
- 初始化:
1.变量
初始化时 可以初始化为 基本常量 如数字,字符 ,数组等
ex: static $a = 1 , static $a = array() 等
但不可以初始化为变量,对象 ,表达式 ,函数返回值等
ex: $b = 1; static $a = $b , static $a = new obj() 等
- 赋值:
1.变量:static 可以赋予任何值 ,与一般变量一致
- 调用:
- 修饰成员变量
类名::变量名 ,self(parent)::变量名 , static::变量名
注意 :不可以使用 $this -> 变量名 或者 $obj -> 变量名
- 修饰方法
类名::方法名 , self(parent):: 方法名 , static::方法名 , $this -> 方法名 或者 $obj -> 方法名
- 作用域:
- 修饰方法
静态方法 内不可以使用 $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}