PHP中的抽象常量-强制子类定义常量

问题描述 投票:44回答:6

我注意到您在PHP中不能有抽象常量。

有没有一种方法可以强制子类定义一个常量(我需要在抽象类内部方法之一中使用它?)>

我注意到您在PHP中不能有抽象常量。有没有一种方法可以强制子类定义一个常量(我需要在抽象类内部方法之一中使用它)?

php constants abstract
6个回答
28
投票

A constantconstant;据我所知,PHP中没有abstractprivate常量,但是您可以解决以下问题:


52
投票

这可能有点'hack',但是可以很轻松地完成工作,但是如果未在子类中声明常量,则会产生不同的错误消息。


19
投票
[不幸的是……一个常数正是它在罐子上所说的常数。一旦定义,就无法重新定义,因此,就不可能通过PHP的抽象继承或接口来要求对其进行定义。

9
投票
否,您还可以尝试其他方法,例如抽象方法:

1
投票
在php 7.2中进行了测试,但从5.3开始,您可以利用后期静态绑定来存档此行为。它会引发致命错误,与异常一样,因为在大多数情况下,您都不希望在运行时处理

Fatal


0
投票
PHP接口支持常量。它不是那么理想,因为您必须记住要在每个子类上实现该接口,这样才能部分地达到目的。
© www.soinside.com 2019 - 2024. All rights reserved.