Maison > développement back-end > Problème PHP > Quelle est la différence entre php const et les variables statiques

Quelle est la différence entre php const et les variables statiques

青灯夜游
Libérer: 2023-03-09 09:06:01
original
2598 Les gens l'ont consulté

Différence : une fois définie, const ne peut pas être modifiée, tandis que les variables modifiées statiquement peuvent être modifiées. const ne peut modifier que les attributs de classe, pas les méthodes de classe ; static peut modifier les attributs ainsi que les méthodes.

Quelle est la différence entre php const et les variables statiques

L'environnement d'exploitation de ce tutoriel : système windows7, version PHP7.1, ordinateur DELL G3

statique et La différence entre les variables const

variable statique

1. mais nous ne pouvons pas modifier les variables const
2. Les variables statiques statiques peuvent modifier les autorisations
3. Semblable à Java, à l'intérieur de la classe, satic Le corps de la méthode modifiée ne peut pas. accéder aux variables membres non staïques de la classe. Il ne peut accéder qu'aux variables staïques de la classe et aux constantes const de la classe

class staticTest1 {
    var $var1 = "hello";
    public static $var2 = "hellostatic"; //public, protected, private
    const var3 = "helloconst";
    public static function displayDifferent(){
###        echo $this->$var1."<br>";//不能访问普通变量
        echo staticTest1::$var2."<br>";//可以访问类的静态变量
        echo self::var3."<br>";//不能用$this::var3, self::var3代表当前类,$this::var3代表当前对象
    }
}
Copier après la connexion

//Vous pouvez appeler la méthode de deux manières.

//第一种,通过对象调用
$test1 = new staticTest1();
echo $test1->displayDifferent();
echo "<br>";
//第二种,通过类调用
echo staticTest1::displayDifferent();
echo "<br>";
Copier après la connexion

Au fait, "::" ne peut accéder qu'aux variables et méthodes statiques des objets, et self ne peut utiliser "::" que pour appeler les membres de la classe actuelle

variables const

1. Les variables Const ne peuvent modifier que les variables membres, pas les méthodes
2 Les autorisations de modification ne sont pas requises
3 . Étant donné que les variables const appartiennent à la classe entière et n'appartiennent pas à un objet, elles ne sont pas accessibles via des objets. Par exemple, $this->constvariable ne permet pas à

class constTest1 {
    var $var1 = "welcome";
//    public const pi = 3.14;//不能加修饰权限
    const pi = 3.14;
//    const function displayDifferent() {//function前不能加const
//        
//    }
   function displayDifferent() {
        echo self::pi."<br>";
//        echo $this::pi."<br>"; 
    }
    static function displayDifferent2() {
        echo self::pi."<br>";
//        echo $this::pi."<br>"; //这句话不行。
    }
}
Copier après la connexion

d'appeler.

//第一种,通过对象调用
$test2 = new constTest1();
echo $test2->displayDifferent();
//第二种,通过类调用
//echo constTest1::displayDifferent();//对象名用"::"只能访问静态变量和方法,所以这个不行

echo constTest1::displayDifferent2();
Copier après la connexion

Apprentissage recommandé : "Tutoriel vidéo 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