PHP中static与self

一直搞不清楚,今天百度自己也测试了一下。

<?php
class A {
    public static function closure(){
        echo __CLASS__."<br/>";
    }
    public static  function call_self(){
        static::closure();
    }
    public static function call_static(){
        self::closure();
    }
}

class B extends A {
    public static function closure(){
        echo __CLASS__."<br/>";
    }
}

A::call_self();//A
A::call_static();//A

B::call_self();//A
B::call_static();//B

百度是这样说的:

self是类内指针,指针是指向自己的属性,方法。

static是代表使用了A类,如果在子类重写了父类的方法和属性,那么就调用子类的方法和属性

0 条评论
发表一条评论