php单例模式中 new self 和 new 本类名 有什么区别啊

php单例模式中 new self 和 new 本类名有什么区别啊

简单通俗的来说, self就是写在哪个类里面, 实际调用的就是这个类.所谓的后期静态绑定, static代表使用的这个类, 就是你在父类里写的static,

然后通过子类直接/间接用到了这个static, 这个static指的就是这个子类, 所以说static和$this很像, 但是static可以用于静态方法和属性等.

<?php
class Person
{
public static function name()
{
echo "xiaosan";
}
public static function callself()
{
self::name();
}

public static function callstatic()
{
    static::name();
}

}

class Man extends Person
{
public static function name()
{
echo "gaojin";
}
}
Man::name(); // output: gaojin
Person::callself(); // output: xiaosan
Person::callstatic(); // output:xiaosan(子类调用 你懂的)
?>