为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候使用Self超过$这个?

什么时候使用Self超过$这个?

PHP
aluckdog 2019-06-05 15:23:10
什么时候使用Self超过$这个?在PHP 5中,使用self和$this?什么时候合适?
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

不使用self::,使用static::

自我还有另一个方面:这是值得一提的。烦人self::指在定义点而不是在执行点的范围。..使用两个方法来考虑这个简单的类:

class Person{

    public static function status()
    {
        self::getStatus();
    }

    protected static function getStatus()
    {
        echo "Person is alive";
    }}

如果我们打电话Person::status()我们会看到“人还活着”。现在,考虑一下当我们创建一个继承自此的类时会发生什么:

class Deceased extends Person{

    protected static function getStatus()
    {
        echo "Person is deceased";
    }}

呼叫Deceased::status()我们希望看到“Person is Death”,但是我们看到的是“Person是活着的”,因为在调用时,范围包含了原始的方法定义。self::getStatus()被定义了。

PHP5.3有一个解决方案。这个static::解析操作符实现“后期静态绑定”,这是一种表示它绑定到被调用类的作用域的奇特方式。换行status()static::getStatus()结果和你所期望的一样。在较早版本的PHP中,您必须找到一个假象才能做到这一点。

看见PHP文档

所以要回答这个问题而不是问.。

$this->引用当前对象(类的实例),而static::指的是一个类


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 624 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信