ホームページ  >  記事  >  バックエンド開発  >  PHPのconst変数と静的変数の違いは何ですか

PHPのconst変数と静的変数の違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-03-31 18:15:562536ブラウズ

違い: const は一度定義すると変更できませんが、static で変更された変数は変更できます。 const はクラス属性のみを変更でき、クラス メソッドは変更できません。static はメソッドだけでなく属性も変更できます。

PHPのconst変数と静的変数の違いは何ですか

このチュートリアルの動作環境: 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代表当前对象
    }
}
//メソッドは 2 つの方法で呼び出すことができます

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

ちなみに、「::」はオブジェクトの静的変数とメソッドにのみアクセスでき、self は「::」を使用して現在のクラスのメンバーを呼び出すことしかできません

const 変数

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>"; //这句话不行。
    }
}
2 つのメソッド呼び出しは許可されません

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

echo constTest1::displayDifferent2();
推奨学習: 「PHP ビデオ チュートリアル

」###

以上がPHPのconst変数と静的変数の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。