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

PHP の定数、静的プロパティ、非静的プロパティの違い

墨辰丷
墨辰丷オリジナル
2018-05-24 10:00:161639ブラウズ

この記事では、PHP クラスの定数、静的プロパティ、および非静的プロパティの違いと導入を主に紹介します。必要な方は参照してください

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;;

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

構文: 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 = ' 通常変数'

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のsubstr関数の定義と使い方のまとめ


2017 phpのexplode関数の定義と使い方のまとめ


以上がPHP の定数、静的プロパティ、非静的プロパティの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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