Pergunta

Enquanto ele não é necessário para uma classe em PHP para estender explicitamente stdClass, Eu queria saber se existe algum tipo de melhores práticas ou vantagem em fazê-lo.

Devo estender stdClass quando declarar uma classe?

Para sua referência, veja O que é stdClass em PHP? e PHP:Objetos, Convertendo a objeto.

Foi útil?

Solução

StdClass é vazio e que, portanto, não ter qualquer benefício em extensão.

Você está apenas desperdiçando extend em seu __CLASS__˙.

php --rc StdClass
Class [ <internal:Core> class stdClass ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [0] {
  }
}

A única razão para estender stdClass é para satisfazer um typehint contra essa classe - no entanto, tal typehint nunca deve ser usado como tal, este é um ponto discutível.

Outras dicas

Nenhum

Há uma forma divertida de usar para estender stdClass:($objeto instanceof stdClass) irá retornar true e é 3x mais rápido do que is_object($objeto).Estamos a falar de um 1 microsegunda diferença, embora e infelizmente, ao menos que seja uma política rigorosa de todo o projeto, ele pode facilmente tornar-se incoerente e, portanto, mais confundindo do que ajudando.Na verdade, eu estou decepcionado ao saber que o PHP classes não estender stdClass por padrão.Teria feito sentido para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top