Erreur PHP : méthode non statique appelée de manière statique
Le message d'erreur « Normes strictes : méthode non statique Page::getInstanceByName() ne doit pas être appelé de manière statique" en PHP indique que vous essayez d'appeler une méthode non statique comme si elle l'était static.
Comprendre les méthodes statiques
Les méthodes statiques sont des méthodes de classe qui peuvent être appelées sans instancier un objet de la classe. Ils sont déclarés à l'aide du mot-clé static. Les méthodes statiques sont généralement utilisées pour les fonctions utilitaires ou pour accéder aux propriétés de classe.
Correction de l'erreur
Dans le code fourni, la méthode getInstanceByName() dans la classe Page est non déclaré comme statique. Pour corriger l'erreur, ajoutez le mot-clé static à la déclaration de la méthode :
public static function getInstanceByName($name='') { // Method implementation... }
Après avoir effectué cette modification, vous devriez pouvoir appeler getInstanceByName() sans recevoir l'erreur.
Considérations sur la testabilité
Bien que les méthodes statiques puissent être pratiques, il est important de noter qu'elles peuvent rendre les tests unitaires plus difficiles. En effet, les méthodes statiques ne sont pas liées à des instances spécifiques d'une classe et ne peuvent donc pas être simulées ou facilement testées de manière isolée.
Requête dans le constructeur
C'est également Il convient de mentionner que le constructeur de classe Page contient des requêtes excessives, ce qui peut avoir un impact sur les performances et la lisibilité du code. Pensez à refactoriser le code pour déplacer l'interrogation vers une méthode distincte ou pour injecter les données nécessaires via l'injection de dépendances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!