Maison >développement back-end >tutoriel php >Comment résoudre l'erreur PHP : « Méthode non statique appelée statiquement » ?

Comment résoudre l'erreur PHP : « Méthode non statique appelée statiquement » ?

DDD
DDDoriginal
2024-11-24 00:36:16664parcourir

How to Resolve the PHP Error:

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn