Maison > développement back-end > Problème PHP > Introduction détaillée aux méthodes statiques en PHP

Introduction détaillée aux méthodes statiques en PHP

PHPz
Libérer: 2023-04-19 09:48:45
original
1173 Les gens l'ont consulté

En PHP, la méthode statique est un type spécial de méthode, très différent des méthodes ordinaires. Cet article présentera en détail le concept, l'utilisation et les précautions des méthodes statiques en PHP.

Concept

En PHP, une méthode statique fait référence à une méthode qui peut être appelée sans instancier d'objet. En termes simples, il s'agit d'une opération globale sur la classe, plutôt que d'une opération sur l'objet instancié. Utilisez l'indicateur de mot-clé statique devant la méthode pour indiquer à l'interpréteur PHP qu'il s'agit d'une méthode statique.

Méthode d'utilisation

Il y a plusieurs choses à noter lors de l'utilisation de méthodes statiques :

  1. Appelez directement via le nom de la classe

Les méthodes statiques n'ont pas besoin d'instancier des objets et peuvent être appelées directement via le nom de la classe :

class Example {
    public static function Func(){
        echo "This is a static function!\n"
    }
}

Example::Func(); //Output: This is a static function!
Copier après la connexion
  1. Dans la méthode Impossible d'utiliser $this mot-clé

Habituellement dans les méthodes normales, nous utilisons $this mot-clé pour faire référence aux propriétés et méthodes de la classe, mais dans les méthodes statiques, puisqu'il n'y a pas d'objet instancié, $this mot-clé ne peut pas être utilisé :

class Example {
    public $name = "example";

    public static function Func(){
        echo "This is a static function! \n";
        //不能使用$this
        //echo $this->name; //错误!
    }
}
Copier après la connexion
  1. Vous pouvez utiliser les mots-clés self et static

Vous pouvez utiliser les mots-clés self et static dans les méthodes statiques pour référencer la classe elle-même et la classe parent :

class Example {
    public static function Func(){
        echo "This is a static function! \n";
        //使用self引用类本身
        echo "The class name is: ".self::class."\n";
    }
}

class ChildExample extends Example {
    public static function Func() {
        //使用parent关键字引用父类
        parent::Func();
        //使用static关键字引用当前类
        echo "The class name is: ".static::class."\n";
    }
}

ChildExample::Func(); 
//Output: 
//This is a static function! 
//The class name is: Example
//The class name is: ChildExample
Copier après la connexion
  1. Peut être hérité et remplacé

Static les méthodes peuvent être comme les méthodes ordinaires. Également héritées et remplacées :

class Example {
    public static function Func(){
        echo "This is a static function in Example! \n";
    }
}

class ChildExample extends Example {
    public static function Func() {
        echo "This is a static function in ChildExample! \n";
        parent::Func();
    }
}

ChildExample::Func(); 
//Output: 
//This is a static function in ChildExample! 
//This is a static function in Example!
Copier après la connexion

Notes

  1. Les méthodes statiques ne peuvent accéder qu'aux propriétés statiques

Étant donné que les méthodes statiques n'ont pas d'objets instanciés, les propriétés non statiques ne sont pas accessibles :

class Example {
    public $name = "example";
    public static function Func() {
        echo "The class name is: ".self::class."\n";
        //不能访问非静态属性
        //echo "The name is: ".$this->name."\n";  
        //错误!
    }
}

Example::Func(); //The class name is: Example
Copier après la connexion
  1. Méthodes statiques ne peut pas être remplacé par une méthode non statique

En PHP, les méthodes statiques ne peuvent pas être remplacées par des méthodes non statiques, ni remplacer les méthodes non statiques. En effet, les méthodes statiques appartiennent à la classe entière, pas à un objet, et ne peuvent pas être polymorphes.

  1. Les méthodes statiques doivent être utilisées le moins possible

Bien que les méthodes statiques puissent offrir beaucoup de commodité, une utilisation excessive de méthodes statiques n'est pas propice à la maintenabilité et à l'évolutivité du programme. Par conséquent, nous devrions essayer d’éviter une utilisation excessive de méthodes statiques dans les grands projets.

Résumé

La méthode statique est un type spécial de méthode en PHP, qui peut être appelée directement sans instancier l'objet. Les méthodes statiques peuvent utiliser les mots-clés self et static pour référencer la classe elle-même et la classe parent, mais ne peuvent pas utiliser le mot-clé $this. Étant donné que les méthodes statiques appartiennent à la classe entière plutôt qu’à un objet, elles doivent être utilisées le moins possible pour garantir la maintenabilité et l’évolutivité du programme.

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