在PHP中创建自己的类时,我应该扩展stdClass吗?

时间:2014-04-13 16:18:19

标签: php extend stdclass

虽然PHP中的某个类不需要显式扩展stdClass,但我想知道这样做是否有某种最佳实践或好处。

在宣布课程时我应该延长stdClass吗?

如需参考,请参阅What is stdClass in PHP?PHP: Objects, Converting to object

3 个答案:

答案 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。对我来说会有意义。