Question

Bien qu'il ne soit pas nécessaire qu'une classe en PHP étende explicitement stdClass, je me demandais s'il y avait une sorte de meilleure pratique ou un avantage à le faire.

Dois-je prolonger stdClass lors de la déclaration d'une classe ?

Pour référence, voir Qu’est-ce que stdClass en PHP ? et PHP :Objets, Conversion en objet.

Était-ce utile?

La solution

StdClass est vide et vous n'avez donc aucun avantage à l'étendre.

Tu gaspilles juste extend dans ton __CLASS__˙.

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

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [0] {
  }
}

La seule raison de prolonger stdClass est de satisfaire un indice de type contre cette classe - cependant, un tel indice de type ne devrait jamais être utilisé, en tant que tel, c'est un point discutable.

Autres conseils

Non

Il existe une utilisation amusante pour étendre stdClass :($object instanceof stdClass) renverra true et est 3 fois plus rapide que is_object($object).Nous parlons d'un 1 microDeuxième différence, cependant et malheureusement, à moins que vous n'en fassiez une politique stricte tout au long du projet, cela peut facilement devenir incohérent et donc plus déroutant qu'utile.En fait, je suis déçu d'apprendre que les classes PHP n'étendent pas stdClass par défaut.Cela aurait été logique pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top