虽然PHP中的类不需要显式扩展stdClass
,但我想知道这样做是否有某种最佳实践或好处。
在声明类时是否应该扩展stdClass
?
如需参考,请参阅PHP中的stdClass是什么?和PHP:对象,转换为对象。
StdClass
为空,因此扩展它没有任何好处。
你只是在你的__CLASS__
中浪费extend
。
php --rc StdClass
Class [ <internal:Core> class stdClass ] {
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [0] {
}
- Methods [0] {
}
}
扩展stdClass
的唯一原因是满足针对此类的类型提示——然而,永远不应该使用这样的类型提示,因为这是一个没有意义的问题。
否
扩展stdClass有一个有趣的用途:(stdClass的$object实例)将返回true,并且比is_object($object)快3倍。不过,我们谈论的是1微小秒的差异,不幸的是,除非你在整个项目中将其作为一项严格的政策,否则它很容易变得不连贯,因此比帮助更令人困惑。事实上,我很失望地发现PHP类默认情况下不会扩展stdClass。这对我来说很有意义。