PHP Static

45 阅读1分钟

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

结果将是递增的,大家都用同一个静态变量