禁止重载PHP类构造函数

Nie*_*een 3 php oop overriding

是否有可能 - 在PHP中 - "禁用"覆盖类的构造函数的功能?

只是为了使场景清晰:我有一个抽象类A,带有构造函数.这个构造函数对于类的工作是必不可少的.然后我有一些"兄弟姐妹","扩展"抽象类A.他们 - 有意识地 - 必须扩展该类,但我不希望他们触及构造函数.

我知道可以调用parent :: __ construct(),但这样我就不会强制使用该模式.在我的同事正在实施扩展我的抽象类的新类的情况下,我不希望没有混淆.当然,所有内容都记录在案,但是你们都知道在阅读内容时它会如何发展;-)

关于如何禁用构造函数的覆盖的任何想法?(在这种情况下,我会创建一个可以覆盖的抽象init()方法,但是我的"抽象构造函数"将对其进行调整).或者任何其他想法来实现这种想要的情况?

谢谢!NIEK

mad*_*low 9

当您的类是抽象的时,您可以将构造函数声明为final.

public final function __construct(){}
Run Code Online (Sandbox Code Playgroud)

在这个构造函数中,您可以调用init()方法.