Должен ли я расширять stdClass при создании собственных классов в PHP?

StackOverflow https://stackoverflow.com//questions/23045119

  •  21-12-2019
  •  | 
  •  

Вопрос

Хотя классу в 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.Для меня это имело бы смысл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top