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

DDD
Libérer: 2024-11-24 00:36:16
original
618 Les gens l'ont consulté

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...
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal