如何解决下面的常量的PHP抽象类访问
在 PHP 中,抽象类是否可以访问下面类的常量?
例如,我可以在 Generic 中分解 getName 吗?
ctx.driverClassName=org.sqlite.JDBC
ctx.jdbcUrl=jdbc:sqlite:/path/to/db/file.db
谢谢
解决方法
这就是 parentClose
和 self::
之间的区别所在。有关更多信息,请参见 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 举报,一经查实,本站将立刻删除。