Должен ли я расширять stdClass при создании собственных классов в PHP?
Вопрос
Хотя классу в PHP не требуется явно расширять stdClass
, Мне было интересно, есть ли в этом какая-то передовая практика или польза.
Должен ли я продлить stdClass
при объявлении класса?
Для справки см. Что такое stdClass в PHP? и PHP:Объекты, Преобразование в объект.
Решение
StdClass
пуст, и поэтому у вас нет никакой выгоды от его расширения.
Ты просто тратишь extend
в вашей __CLASS__
˙.
php --rc StdClass
Class [ <internal:Core> class stdClass ] {
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [0] {
}
- Methods [0] {
}
}
Единственная причина продлить stdClass
заключается в удовлетворении подсказки для этого класса, однако такую подсказку никогда не следует использовать, поскольку это спорный вопрос.
Другие советы
Нет
Есть одно забавное применение для расширения stdClass:($object instanceof stdClass) вернет true и работает в 3 раза быстрее, чем is_object($object).Мы говорим о 1 микроВторое отличие, однако, к сожалению, если вы не сделаете это строгой политикой на протяжении всего проекта, оно может легко стать бессвязным и, следовательно, больше сбивать с толку, чем помогать.На самом деле, я разочарован, узнав, что классы PHP по умолчанию не расширяют stdClass.Для меня это имело бы смысл.