微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP中static和self的区别

使用 self:: 或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类:

使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法调用

静态绑定是PHP 5.3.0,增加一个功能 用于在继承范围内引用静态调用的类

简单通俗的来说,

self就是写在哪个类里面, 实际调用的就是这个类.

static代表使用的这个类, 就是你在父类里写的static,然后被子类覆盖,使用的就是子类的方法属性

<?PHP
class Person
{
    public static function name()
    {
        echo 111;
        echo <br />;
    }
    public static function callself()
    {
        self::name();
    }

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

class Man extends Person
{
    public static function name()
    {
        echo 222;
        echo <br />;
    }
}

Man::callself();  // output: 111
Man::callstatic();  // output: 222
?>

推荐:PHP教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐