PHP の OOP クラス定数とは何ですか?

Php No Oop Kurasu Ding Shutoha Hedesuka



として知られるプログラミングパラダイム オブジェクト指向プログラミング (OOP) ユーザーはモジュール式の再利用可能なプログラムを作成できます。 絶え間ない クラス内での使用は OOP の機能の 1 つです。 クラス定数 PHP では、指定後に変更できない値です。これらはクラスのメンバーであり、特定のクラス インスタンスには関連付けられていません。

PHP のクラス定数とは何ですか?

まず、 クラス定数 スクリプトの実行中に一定のままである値を指します。 OOP では、プログラマは、クラス内で特定の意味を持ち、どのクラス メソッドでも更新できない値を定義できます。の 定数 キーワードは指定するために使用されます クラス定数 、スクリプトの実行中に定数値が与えられます。







クラス定数 クラス内で定義された値で、プログラムの実行を通じて一定のままです。用語 定数 を使用して定数を定義し、その後にその定数の名前と値が続きます。一度定義すると、実行中に変更することはできません。



たとえば、次のように定義できます。 クラス定数 次の方法で Pi の値を求めます。



数学のクラス {
定数PI = 3.14 ;
}


ここで定義したのは、 クラス定数PI 数学のクラスは 3.14 です。定数はクラスのインスタンスではなくクラスに関連付けられているため、次のようにインスタンスなしで定数にアクセスできます。





エコー 数学::PI;


通常の変数と比較すると、 クラス定数 いくつかの顕著な違いがあります。まず、これらは不変です。つまり、一度定義すると変更することはできません。第二に、 定数値 PHP の変数とは異なり、大文字と小文字が区別されます。さらに、定数は次を使用して定義されます。 定数 キーワードを使用するのに対し、変数では だった キーワード、これは重要な違いです。

クラス定数へのアクセス

アクセスする クラス定数 2つの方法で行うことができます。



1: スコープ解決 (::) を使用する

まず、 クラス定数 を使用してアクセスできます スコープ解決 (::) 次のような演算子。

クラス名::CONSTANT_NAME


例を見てみましょう:

< ?php
クラス人 {
定数名 = 「ラリー」 ;
定数年齢 = 32 ;
const 国籍 = 「アメリカ人」 ;
}
エコー 人物::名前、 \n ;
エコー 人物、 \n ;
エコー 人物::国籍;
? >


上記のコードでは、 クラスは名前、年齢、国籍を 3 つとして指定します 定数 。各定数には文字列または整数値が定義されています。

:: 演算子は、クラス定数の値にアクセスするために定数の名前と組み合わせて使用​​されます。たとえば、次の構文を使用します 人物::名前 の値を取得するには 名前 絶え間ない。

最後に、echo コマンドを使用して、Name、Age、および Nationality 定数の値を画面に出力します。

2: 「self」キーワードの使用

あるいは、以下にアクセスすることもできます。 クラス定数 クラス自体内で、 「自分」 キーワードの後に​​以下の定数名を続けます。

self::CONSTANT_NAME


を使用して定数にアクセスする例を見てください。 自己 キーワード。

< ?php
クラスサークル {
定数PI = 3.14159 ;
プライベート $半径 ;
公共 関数 __構築 ( $半径 ) {
$this - > 半径 = $半径 ;
}
公共 関数 エリア ( ) {
戻る 自分::PI * $this - > 半径 * $this - > 半径;
}
}
$circle = 新しいサークル ( 16 ) ;
エコー $circle - > エリア ( ) ;
? >


上記の例では、Circle という名前のクラスが $radius というプライベート プロパティと PI という定数を指定します。で使用される公式は、 getArea() 円の面積を求める関数は PI * 半径 * 半径 ここで、PI は PI 定数の値、radius は $radius パラメーターの値です。

以内 getArea() メソッドを利用します。 自己 PI 定数の値を取得するには、キーワードの後に​​定数の名前を続けます。 自分::PI


定義する際に留意すべき考慮事項がいくつかあります。 クラス定数 。まず、クラス定数の名前がクラス内で一意であることを確認してください。次に、クラス名と同じ命名規則に従う必要があります。つまり、定数にはキャメルケースを使用します。最後に、整数や文字列などのスカラー値のみを次のように定義することをお勧めします。 クラス定数

クラス定数の継承

もう一つの重要な特徴は、 クラス定数 それは、子クラスに継承できることです。本質的に、サブクラスは、親クラスによって定義された定数値にアクセスできます。 キーワード。例えば:

< ?php
クラス動物 {
const ANIMAL_TYPE = '哺乳類' ;
}
クラス Dog は Animal を拡張します {
公共 関数 getType ( ) {
エコー 「犬は」 、親::ANIMAL_TYPE;
}
}
$ドッグ = 新しい犬 ( ) ;
$ドッグ - > getType ( ) ;
? >


この図では、Animal クラスに値「」の定数があります。 哺乳類 ”という名前の 動物の種類 。の Animal クラスから派生したサブクラスです。

公共の機能 getType() Dog クラスの値は単純に出力されます。 NIMAL_TYPE を使用して親クラスの定数にアクセスし、定数を取得します。 親::キーワード

最後に、Dog クラス オブジェクトを構築し、 getType() Animal クラスの継承定数の値を返す関数 動物の種類

結論

の用法 クラス定数 PHP およびその他のプログラミング言語におけるオブジェクト指向プログラミングの重要なコンポーネントです を使用することで クラス定数 を使用すると、コードの更新時に面倒になる可能性がある、プログラム内のハードコードされた値を回避できます。命名規則に従い、クラス定数を定義する際にはプログラム内でのアクセス可能性を念頭に置くことが重要です。