虽然PHP中的某个类不需要显式扩展stdClass
,但我想知道这样做是否有某种最佳实践或好处。
在宣布课程时我应该延长stdClass
吗?
如需参考,请参阅What is stdClass in PHP?和PHP: Objects, Converting to object。
答案 0 :(得分:10)
StdClass
为空,因此您在扩展它时没有任何好处。
您只是在extend
˙。
__CLASS__
php --rc StdClass
Class [ <internal:Core> class stdClass ] {
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [0] {
}
- Methods [0] {
}
}
扩展stdClass
的唯一理由是满足此类的类型提示 - 但是,永远不应该使用这种类型提示,因此这是一个有争议的问题。
答案 1 :(得分:5)
答案 2 :(得分:1)
扩展stdClass有一个有趣的用途:($ object instanceof stdClass)将返回true并且比is_object($ object)快3倍。我们说的是第二个差别,但不幸的是,除非你在整个项目中制定严格的政策,否则它很容易变得不连贯,因此比帮助更容易混淆。事实上,我很失望地得知PHP类默认情况下不会扩展stdClass。对我来说会有意义。