Qu'est-ce qu'une variable statiquestatique ?
Variable statique Le spécificateur de type est statique.
Les variables statiques appartiennent au stockage statique, et leur espace de stockage est la zone de données statiques dans la mémoire (les unités de stockage sont allouées dans la zone de stockage statique. Les données de cette zone occupent ces espaces de stockage tout au long du fonctionnement de). le programme. (Non libéré pendant toute l'exécution du programme), on peut également considérer que son adresse mémoire ne change qu'à la fin de l'ensemble du programme (au contraire, les variables auto automatiques, c'est-à-dire les variables locales dynamiques, appartiennent à la catégorie de stockage dynamique et occupent un espace de stockage dynamique, la Fonction sera libérée une fois l'appel terminé). Bien que les variables statiques existent toujours tout au long de l'exécution du programme, elles ne peuvent pas être utilisées en dehors de son cadre.
De plus, les variables appartenant à la méthode de stockage statique ne sont pas nécessairement des variables statiques. Par exemple : bien que les variables externes (appelées variables globales en PHP) soient des méthodes de stockage statiques, elles ne sont pas nécessairement des variables statiques. Elles doivent être définies par static avant de pouvoir devenir des variables externes statiques ou des variables globales statiques.
Toutes les variables globales sont des variables statiques, et les variables locales ne sont des variables statiques locales que lorsqu'elles sont définies avec le modificateur de type static.
Les variables statiques peuvent être appliquées n'importe où. Une fois l'application réussie, elle n'acceptera plus d'autres applications identiques.
Les variables statiques ne signifient pas qu'elles ne peuvent pas changer leur valeur. Une quantité qui ne peut pas changer sa valeur est appelée une constante. La valeur qu'il détient est modifiable et elle restera à jour. On dit qu'il est statique car il ne changera pas lorsque la fonction est appelée et quitte . Autrement dit, si nous attribuons une certaine valeur à une variable statique la dernière fois que la fonction est appelée, la valeur restera inchangée au prochain appel de la fonction. La variable membre
de php peut être initialisée en même temps que la déclaration, mais elle ne peut être initialisée qu'avec un scalaire.
class A { public $f1 = 'xxxx'; static public $f2 = 100; }
Si vous souhaitez affecter une variable à un objet, elle ne peut être initialisée que dans le constructeur, par exemple :
class A { private $child; public function construct() { $this->child = new B(); } }
Mais il n'y a rien de similaire au constructeur/bloc statique static en java en php, il n'y a donc pas de moment approprié pour l'initialiser .
Il existe des moyens de résoudre le problème pour les membres partagés, par exemple :
class A { static public $child; } A::$child = new B();
Il ne semble pas y avoir de méthode propre pour les membres privés, la seule façon est de le faire :
class A { static private $child; static public initialize() { self::$child = new B(); } } A::initialize();
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!