static
声明类属性或方法为 static(静态),可以不实例化类而直接访问
静态属性不能通过一个类已实例化的对象来访问,但静态方法可以
静态属性不可以由对象通过 -> 操作符来访问,要通过::访问
A::$var
A::function()
class A {
static $static_naem = 'this is static name';
public function demo(){
echo self::$static_naem;
}
}
$a = new A();
echo A::$static_naem;
echo $a::$static_naem;
如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::即可
和大多数语言一样,静态代表着同类共享,比如
class A{
static public $num = 0;
public function add(){
self::$num++;
echo self::$num
}
}
声明两个同类实例,并调用add
$n1 = new A();
$n1 -> add(); // 1
$n2 = new A();
$n2 -> add(); // 2
结果将是递增的,大家都用同一个静态变量