ホームページ >バックエンド開発 >PHPチュートリアル >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>';
II.static属性: 定数構文 (::) を使用してアクセスできる変数であり、インスタンス化せずにアクセスできます
構文: 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 = 'normal variable'
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 クラス定数、静的プロパティ、非静的プロパティの違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。