Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation du mot-clé statique en PHP

Explication détaillée de l'utilisation du mot-clé statique en PHP

韦小宝
韦小宝original
2018-03-06 11:43:501633parcourir

Dans une classe en PHP, les méthodes et les attributs avec le mot-clé statique sont appelés méthodes statiques et attributs statiques, comme ceci Les méthodes et Les propriétés sont accessibles directement via la classe sans accéder via l'instance correspondante de la classe. Cet article décrit comment le mot-clé static est utilisé en PHP. Les étudiants qui n'ont pas encore compris le mot-clé static peuvent le lire ensemble.

En plus de l'utilisation de classes et de méthodes régulières, du contrôle d'accès, il existe également le mot-clé static Les variables statiques peuvent être des variables locales ou des variables globales. Variables. Lorsqu'un segment de programme est exécuté, la variable statique ne disparaît pas. Elle existe toujours dans la mémoire. La prochaine fois qu'elle sera définie, elle aura toujours la valeur précédente. Elle est souvent utilisée pour conserver la valeur précédente en récursion ou. des sous-fonctions. Il peut être utilisé Définir des variables et des méthodes. Je n'entrerai pas dans les détails de leurs fonctions. Parlons de comment les utiliser. Voici un code simple :

.
class Human{
     public $name;
     protected $height;
 
     public static $sValue="Static Value in Human";
     public function eat($food){
         echo $this->name . "'s eating ". $food. "\n";
     }
}
 class Me extends Human
 {
     public $team="lsl";
     private $age="23";
 
     public static $president="zzy";
 
     public static function changePresident($newPrsdt){
         static::$president = $newPrsdt;
         echo parent::$sValue . "<br />";
     }
     //静态变量和方法操作
     private static $a="abc";
     public static function abc(){
         echo "<br />".self::$a;
         self::$a.="def";
    }
}
echo Me::$president. "\n";
Me::changePresident("web");
echo Me::$president. "<br />"; 
Me::abc();
Me::abc();


Définissez d'abord un humain Human, puis définissez une classe Me pour hériter de Human. Ensuite, les membres de Human peuvent être utilisés via des objets Me et les valeurs ​. ​des variables membres sont valides tout au long du processus d'utilisation.Vous pouvez le voir selon le code : Une fois la valeur d'une variable statique modifiée, le prochain appel aura lieu après le changement.S'il s'agit d'une variable ordinaire, elle ne peut pas l'être. implémenté. Il ne peut être efficace qu'en modifiant l'objet, et il ne peut pas être modifié par des méthodes à l'intérieur de la classe. Grâce aux deux dernières lignes de code, il est plus facile de voir que la valeur de la variable statique $a a changé après l'appel de la méthode abc. Les variables statiques peuvent être comprises en y réfléchissant. Elles sont également largement utilisées. Voici quelques règles liées aux mots-clés statiques :

1. données de la classe

2. Seuls les attributs statiques sont accessibles à l'intérieur des méthodes statiques, y compris cette classe et

de la classe parent 3. Les membres statiques sont accessibles sans instancier l'objet

4. Utilisez self pour accéder aux propriétés statiques au sein de cette classe ou accès par mot clé statique, les variables suivies doivent inclure $, par exemple : self :: $a ou static::$a

5. Utilisez parent pour accéder aux propriétés statiques de la classe parent Par exemple : parent::$name

6. Lorsque vous accédez à des variables ou méthodes statiques en dehors de la classe, utilisez le nom de la classe pour y accéder directement sans instanciation. Par exemple : Me::$pan et Me::abc()

Il y a tellement de points précis

Je ne Je ne comprends pas la statique:

Analyse de la différence entre les variables statiques statiques et les variables ordinaires

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