違い: const は一度定義すると変更できませんが、static で変更された変数は変更できます。 const はクラス属性のみを変更でき、クラス メソッドは変更できません。static はメソッドだけでなく属性も変更できます。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
静的およびconst 変数の違い
static 変数
1.static 静的変数は変更できます。ただし、const 変数は変更できません
2.static 静的変数はアクセス許可を変更できます
3.java と同様に、クラス内では、satic 変更されたメソッドの本体は変更できませんクラスの非静的メンバー変数にアクセスしますが、クラスの静的変数とクラスの const 定数にのみアクセスできます
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代表当前对象 } }
//第一种,通过对象调用 $test1 = new staticTest1(); echo $test1->displayDifferent(); echo "<br>"; //第二种,通过类调用 echo staticTest1::displayDifferent(); echo "<br>";
1. const 変数はメンバー変数のみを変更でき、メソッドは変更できません
2. 変更権限は必要ありません
3 .const 変数が属しているためクラス全体に割り当てられており、オブジェクトに属していない場合、オブジェクトを通じてアクセスすることはできません。たとえば、$this->constvariable では
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>"; //这句话不行。 } }
//第一种,通过对象调用 $test2 = new constTest1(); echo $test2->displayDifferent(); //第二种,通过类调用 //echo constTest1::displayDifferent();//对象名用"::"只能访问静态变量和方法,所以这个不行 echo constTest1::displayDifferent2();
以上がPHPのconst変数と静的変数の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。