Maison  >  Article  >  développement back-end  >  Quelle est la fonction du mot-clé statique en php

Quelle est la fonction du mot-clé statique en php

王林
王林original
2020-06-29 16:37:006379parcourir

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 ;

Quelle est la fonction du mot-clé statique en php

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 globale

Les 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 &#39;The age is: 1&#39;
echo Person::tellAge(); //output &#39;The age is: 2&#39;
echo Person::tellAge(); //output &#39;The age is: 3&#39;
echo Person::tellAge(); //output &#39;The age is: 4&#39;
?>

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 &#39;ChromePhp.php&#39;;
 
$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 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!

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