この記事では、PHP クラスの定数、静的プロパティ、および非静的プロパティの違いと導入を主に紹介します。必要な方は参照してください
1: クラス内で常に変更されない値は次のとおりです。定数として定義されています
クラス定数はアクセス制限修飾子を使用できません。これらはパブリックであり、継承可能であり、サブクラスによってオーバーライドできます。クラス名またはクラス インスタンスを使用してアクセスできます。 , なぜなら定数なので名前に変数$を表す記号を使うことはできません
クラス内で常に変化しない値を定数として定義することができます。定数を定義および使用するときに $ 記号を使用する必要はありません。
定数の値は固定値である必要があり、変数、クラス属性、数学的演算や関数呼び出しの結果にすることはできません。
定数はインターフェースでも定義できます。その他の例については、ドキュメントのインターフェイスのセクションを参照してください。
PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード (self、parent、static など) にすることはできません。
構文: const constant= 'constant';
class Myclass{ const constant = '常量'; //类内部调用 public function test(){ echo self::constant.'<br>'; } } Myclass::test(); //类外部访问 echo Myclass::constant.'<br>'; //方法一 $obj = new Myclass(); //方法二 echo $obj::constant.'<br>';
2. 静的属性: 定数構文 (:: ) を使用してアクセスできる変数であり、インスタンス化せずにアクセスできます
構文: public static $my_static = 'similar constant';
class Myclass{ public static $static_val = '静态属性'; //类内部访问 public function test(){ return self::$static_val.'<br>'; } } //类外部访问 // echo Myclass::test(); echo Myclass::$static_val; //方法一 $obj = new Myclass(); //方法二 echo $obj::$static_val; echo $obj->test();
3. 非静的プロパティ: -> 記号を使用してアクセスできる通常の変数: public $my_val = ' 通常変数'
class Myclass{ public $normal_val = '非静态属性'; //类内部访问 public function test(){ return $this->normal_val ; } } //类外部访问 $obj = new Myclass(); echo $obj->normal_val; echo $obj->test();
クラス内の定数、プロパティ、メソッドのリストを取得するPHPのメソッド
$r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");
関連する推奨事項:
文字列の定義方法とその違い
phpのsubstr関数の定義と使い方のまとめ
以上がPHP の定数、静的プロパティ、非静的プロパティの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。