是否可能要求PHP 5.3中的对象包含某些常量或属性?我对PHP的接口模型有所了解,看来它仅适用于抽象的公共方法,所以没错.因此,我要问的是是否有一种方法可以拥有两个对象A和对象B.如果对象B要扩展对象A,则它必须包含特定的常量或变量.您将如何设计这种类型的架构?谢谢.
解决方法:
http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces.constants
Its possible for interfaces to have constants. Interface constants works exactly like class constants except they cannot be overridden by a class/interface that inherits it.
接口常量不能被继承的类覆盖.类常量可以被覆盖,但不是必需的(即使在抽象类中声明).设计抽象类是为了强制接口,而不是实现.常量属于实现,而方法定义接口.因此,尽管可以在抽象类中使用默认值声明常量,但由孩子决定是否使用或重新定义它们.
最好的选择是使用“ getter”方法,例如:
abstract class MyAbstract
{
abstract public function getPropertyA();
abstract public function getPropertyB();
}
现在,将需要使用扩展MyAbstract的任何类来定义getPropertyA()和getPropertyB(),以确保可以始终访问这些值.