Introduction aux variables statiques en php

不言
Libérer: 2023-04-02 16:02:01
original
1865 Les gens l'ont consulté

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

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

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

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

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!

Étiquettes associées:
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