Lors de la création de mes propres classes en PHP, dois-je étendre stdClass ?
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.
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.