Maison > développement back-end > Problème PHP > Quelle est la fonction du mot-clé statique en php

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

王林
Libérer: 2023-03-01 18:04:01
original
6491 Les gens l'ont consulté

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

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

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

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

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!

É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