Cet article présente principalement l'introduction des variables statiques en php. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
1 Variables statiques dans les fonctions
Uniquement. Agit à l'intérieur de la fonction. Après chaque appel, la valeur de la variable statique changera en fonction de l'appel précédent. Lors de la définition, si une valeur initiale est donnée, alors cette instruction ne sera exécutée qu'une seule fois
Par exemple : Peu importe le nombre de fois que la fonction getdata() static $c2 = 0 est appelée cette instruction ne sera exécutée qu'une seule fois initialement ;
function getdata(){ static $c2 = 0;//初始化语句 $c2 = $c2 + 1; echo "$c2\n"; } getdata();//结果 1 getdata();//结果 2
2 variables membres de classe statiques
1. Les variables membres statiques d'une classe appartiennent uniquement à cette classe, mais toutes les instances de la classe partagent cette variable membre statique
2. .Les variables membres statiques n'ont pas besoin d'être instanciées et sont accessibles, et la vitesse d'accès est plus rapide
Par exemple :
class C1 { //use Counter; static $c2=1; public function inc() { static $c; $c = $c + 1; echo "$c\n"; } } $o = new C1(); $o->inc(); // echo 1 $p = new C1(); $p->inc(); // echo 2 echo' '; $p::$c2=5; echo C1::$c2;//echo 5 静态成员变量不需要实例化就能访问,且访问速度快一些 echo' '; echo $p::$c2;//echo 5 echo' '; echo $o::$c2;//echo 5
1.méthode de classe statique
La méthode statique de. la classe ne peut accéder qu'aux variables membres statiques, mais pas aux variables membres non statiques (le cas échéant, une erreur sera signalée)
class C3 { //use Counter; public static $c3=1; public $c5 =5; public static function inc1() { echo C3::$c3;// } public static function inc2() { echo $this->c5; //会报错 $this不允许出现在静态方法中 } } C3::inc1();// echo 1 C3::inc2(); //Fatal error: Uncaught Error: Using $this when not in object context
2 Les variables statiques du trait
Les variables statiques du trait n'ont aucune influence sur. les uns les autres lorsqu'ils sont utilisés par différentes classes
Par exemple :
trait Counter { public function inc() { static $c = 0; $c = $c + 1; echo "$c\n"; } } class C1 { use Counter; } class C2 { use Counter; } $o = new C1(); $o->inc(); // echo 1 $o->inc(); // echo 2 $b = new C1(); $b->inc(); // echo 3 $b->inc(); // echo 4 $p = new C2(); $p->inc(); // echo 1 $p->inc(); // echo 2
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour un contenu plus connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Mise en œuvre des commentaires d'arrière-plan PHP
Comment PHP vérifie la légalité de la propriété intellectuelle
Comment implémenter l'héritage multiple simulé en php
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!