ホームページ  >  記事  >  バックエンド開発  >  PHP クラス定数、静的プロパティ、非静的プロパティの違いの詳細な説明

PHP クラス定数、静的プロパティ、非静的プロパティの違いの詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-29 09:27:171322ブラウズ

1. クラス定数: クラス内で常に変更されない値は定数として定義されます

クラスの定数はアクセス制限修飾子を使用できず、パブリックであり、継承することができます。クラスの定数にアクセスするには、二重コロン:: を使用する必要があります。クラス名またはクラスのインスタンスを使用できます。これは定数であるため、名前に記号を使用することはできません。変数 $.

クラス内で常に変更されない値を定数として定義できます。定数を定義および使用するときに $ 記号を使用する必要はありません。

定数の値は固定値である必要があり、変数、クラス属性、数学演算や関数呼び出しの結果であってはなりません。

定数はインターフェースでも定義できます。その他の例については、ドキュメントのインターフェイスのセクションを参照してください。

PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード (self、parent、static など) にすることはできません。

構文: const constant= 'constant';

class Myclass{
 const constant = '常量';

 //类内部调用
 public function test(){
  echo self::constant.&#39;<br>&#39;;
 } 
}
Myclass::test();
//类外部访问
echo Myclass::constant.&#39;<br>&#39;; //方法一

$obj = new Myclass();  //方法二
echo $obj::constant.&#39;<br>&#39;;

II.static属性: 定数構文 (::) を使用してアクセスできる変数であり、インスタンス化せずにアクセスできます

構文: public static $my_static = 'similar constant';

class Myclass{
 public static $static_val = &#39;静态属性&#39;;
 //类内部访问
 public function test(){
  return self::$static_val.&#39;<br>&#39;;
 } 
}

//类外部访问
// 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 = &#39;非静态属性&#39;;

 //类内部访问
 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 サイトの他の関連記事を参照してください。

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