我有一个名为 Rule 的类,我将要创建一个 RuleContainer 类,它实际上是规则对象数组。
我想知道是否有创建新类的替代方法。有什么(现代)方法可以解决这个问题吗?也就是说,类似于使用 SPL 定义只允许添加特定类的对象的数组。
如果不是,我应该在我的 RuleContainer 类中实现哪个接口(interface)?
最佳答案
最适合您任务的类是 SplObjectStorage
,但它不允许类类型提示。
我想,你可以这样做:
class RuleContainer extends SplObjectStorage
{
function attach(Rule $rule)
{
parent::attach($rule);
}
function detach(Rule $rule)
{
parent::detach($rule);
}
}
等等。您可以在 php.net
上阅读 SplObjectStorage
接口(interface)并决定您将使用什么以及需要覆盖什么。
关于仅包含特定类对象的 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28107977/