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

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

青灯夜游
青灯夜游original
2021-03-31 18:15:562544parcourir

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代表当前对象
    }
}

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

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

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>"; //这句话不行。
    }
}

d'appeler.

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

echo constTest1::displayDifferent2();

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!

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