静的とは、静的オブジェクトまたは静的変数を定義することです。この記事の関連する例を読んだ後、静的で定義された変数またはクラス メソッドの特性がわかります。
1. オブジェクト $object = new Class() を作成し、変数/メソッドがアクセス可能な場合は、「->」を使用して $object->attribute/function を呼び出します。
2. 静的か非静的かに関係なく、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります:
A. 変数の場合、その変数にアクセスできる必要があります。
B. メソッドの場合、アクセス可能であることに加えて、次の条件も満たす必要があります。
b1) 静的メソッドの場合、特別な条件はありません。
b2) 非静的メソッドの場合。 、メソッド内で $this が使用されない、つまり非静的変数/メソッドが呼び出されないように変更する必要があります。もちろん、静的変数/メソッドを呼び出すことには問題はありません。
次に、$object->… の使用と class::…: の使用の違いを見てみましょう。 $object->… を使用する場合、オブジェクトを作成するためにコンストラクターを実行する必要があります
2。 . class:: … を使用する 静的メソッド/変数を呼び出す場合、オブジェクトを作成するためにコンストラクターを実行する必要はありません。
3. 非静的メソッド/変数を呼び出す場合は、オブジェクトを作成するコンストラクター。
static static
クラス メンバーまたはメソッドを static として宣言すると、クラスをインスタンス化せずに直接アクセスできます。オブジェクトを介して静的メンバー (静的メソッドを除く) にアクセスすることはできません。静的メンバーはクラスに属し、どのオブジェクト インスタンスにも属しませんが、クラスのオブジェクト インスタンスは共有できます。
コードをコピーします | |
Class Person{ // 静的メンバーのプロパティを定義します Public static $country = "China"; // 静的メンバーのメソッドを定義します Public static Function Mycountry () { // 静的メンバーのプロパティへの内部アクセス © echo "I am" .Self :: $ country "People & lt;" /& gt; "; ERSON { functionstudy() { echo "I am".parent::$country."人 "; } } // メンバー属性値を出力 echo Person::$country."< ;br />"; // 出力: China $p1 = new Person(); //echo $p1->country; // 書き方が間違っています // static にアクセスしますmember method Person::my Country() ; // 出力: 私は中国人です // 静的メソッドにはオブジェクトを通じてアクセスすることもできます: $p1->my Country(); // メンバー属性値を出力しますサブクラス echo Student::$country." "; // 出力: 中国 $t1 = new Student(); $t1->study(); // 出力: 私は中国人です ?>
| 中国
中国
私は中国人です概要
クラス内の静的メンバー属性またはメソッドにアクセスするには、self を使用します:: ($slef ではないことに注意してください)、例:
コードは次のとおりです
slef:: $country | slef:: my Country() |
親クラスにアクセスするにはサブクラス内の静的メンバーのプロパティまたはメソッドを使用するには、parent:: ($parent ではないことに注意してください) を使用します。例: |
コードをコピー
parent:: $country | parent:: my Country () | ||||||||||||||||
静的メンバーのプロパティとメソッドへの外部アクセスは、クラス名/サブクラス名:: です。例:
ただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。
静的変数の使用例
これで、Test() 関数が呼び出されるたびに、$w3sky の値が出力され、1 ずつ増加します。
Function Test()
http://www.bkjia.com/PHPjc/444700.html www.bkjia.com | 本当