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

下面的常量的PHP抽象类访问

如何解决下面的常量的PHP抽象类访问

PHP 中,抽象类是否可以访问下面类的常量?

例如,我可以在 Generic 中分解 getName 吗?

ctx.driverClassName=org.sqlite.JDBC
ctx.jdbcUrl=jdbc:sqlite:/path/to/db/file.db

谢谢

解决方法

这就是 parentCloseself:: 之间的区别所在。有关更多信息,请参见 here

static::

会导致

abstract class Generic {
    protected const NAME = "Generic";

    public function getName(): string {
        return self::NAME;
    }
}

class MorePreciseA extends Generic {
    protected const NAME = "More Precise A";
}

class MorePreciseB extends Generic {
    protected const NAME = "More Precise B";

}


$a = new MorePreciseA();
$b = new MorePreciseB();

var_dump($a->getName(),$b->getName());

但是如果你像这样替换 // string(7) "Generic" // string(7) "Generic" 实现

Generic

然后它会输出

abstract class Generic {
    public function getName(): string {
        return static::NAME;
    }
}

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