Les fonctions du mot-clé static en PHP sont : 1. Mettez-le dans la fonction pour modifier la variable, et la valeur de la variable sera toujours enregistrée après l'exécution de la fonction 2. Mettez-le dans la classe pour ; modifier l'attribut ou la méthode. Si la modification est un attribut de classe, la valeur est conservée ; 3. Modifier la variable dans la méthode de la classe ;
Les fonctions du mot-clé static sont les suivantes :
1. Mettez-le dans la fonction pour modifier la variable
2. Mettez-le dans une classe pour modifier des attributs ou des méthodes
3. >
4. Modifier les variables dans la portée globaleLes différentes significations des mots-clés sont les suivantes :
1. exécuté, la valeur de la variable est toujours enregistrée
Comme indiqué ci-dessous :
<?php function testStatic() { static $val = 1; echo $val; $val++; } testStatic(); //output 1 testStatic(); //output 2 testStatic(); //output 3 ?>
2. Les attributs ou méthodes modifiés sont accessibles via le nom de la classe. Si l'attribut modifié est un attribut de classe, le réservé. la valeur
est la suivante :
<?php class Person { static $id = 0; function __construct() { self::$id++; } static function getId() { return self::$id; } } echo Person::$id; //output 0 echo "<br/>"; $p1=new Person(); $p2=new Person(); $p3=new Person(); echo Person::$id; //output 3 ?>
3. Les variables dans la méthode de modification de la classe
sont les suivantes :
<?php class Person { static function tellAge() { static $age = 0; $age++; echo "The age is: $age "; } } echo Person::tellAge(); //output 'The age is: 1' echo Person::tellAge(); //output 'The age is: 2' echo Person::tellAge(); //output 'The age is: 3' echo Person::tellAge(); //output 'The age is: 4' ?>
4. qui modifient la portée globale n'ont aucune signification pratique
comme suit Indique :
<?php static $name = 1; $name++; echo $name; ?> 另外:考虑到PHP变量作用域 <?php include 'ChromePhp.php'; $age=0; $age++; function test1() { static $age = 100; $age++; ChromePhp::log($age); //output 101 } function test2() { static $age = 1000; $age++; ChromePhp::log($age); //output 1001 } test1(); test2(); ChromePhp::log($age); //outpuut 1 ?>
On voit que ces trois variables ne s'affectent pas les unes les autres. De plus, il n'y a qu'une portée globale et une portée de fonction en PHP, pas une portée de bloc.
Si vous souhaitez en savoir plus sur les connaissances connexes, n'hésitez pas à visiter le
site Web chinois phpCe 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!