Maison > Article > développement back-end > Quelle est la différence entre php const et les variables statiques
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.
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
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!