Maison > développement back-end > tutoriel php > Comment corriger l'erreur PHP « Normes strictes : la méthode non statique ne doit pas être appelée de manière statique » ?

Comment corriger l'erreur PHP « Normes strictes : la méthode non statique ne doit pas être appelée de manière statique » ?

DDD
Libérer: 2024-11-27 05:32:10
original
984 Les gens l'ont consulté

How to Fix the

Résolution de l'erreur « Normes strictes : la méthode non statique ne doit pas être appelée de manière statique » en PHP

Le message d'erreur « Normes strictes : la méthode non statique ne doit pas être appelée de manière statique » appelé statiquement" se produit lorsqu'une méthode non statique est accédée à l'aide d'un appel statique. Pour résoudre cette erreur, nous modifierons le code pour garantir que toutes les méthodes sont déclarées comme statiques lorsqu'elles sont destinées à être appelées de manière statique.

Dans le code fourni, les méthodes de la classe Page ne sont pas déclarées comme statiques, mais ils sont appelés statiques. Pour résoudre ce problème, nous devons ajouter le mot-clé static aux déclarations de méthode.

Modifier Page.php

class Page{
    // ...
    public static function getInstanceByName($name=''){
        // ...
    }
    // ...
}
Copier après la connexion

En rendant ces méthodes statiques, elles peuvent accessible en utilisant le nom de la classe, comme indiqué dans le fichier index.php :

// ...
if($page){ // load by name
    $r = Page::getInstanceByName($page);
    if($r && isset($r->id)) $id = $r->id;
}
// ...
Copier après la connexion

Supplémentaire Notes

  • Les méthodes statiques et les modèles Singleton peuvent gêner les tests unitaires.
  • Les constructeurs doivent principalement se concentrer sur la définition de l'objet dans un état valide plutôt que sur l'exécution de requêtes approfondies.
  • Les constructeurs ne peuvent pas renvoyer de valeurs ; ils reviennent toujours nuls.

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