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

違い: 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)