PHP では、static キーワードによって変更されたメンバー プロパティとメンバー メソッドを、静的プロパティと静的メソッドと呼びます。
静的プロパティと静的メソッドは、クラスによってインスタンス化されずに直接使用できます。
静的属性は、クラス自体に属し、クラスのインスタンスには属しません。これはクラスに格納されているグローバル変数と同等であり、クラスを通じてどこからでもアクセスできます。
クラスがインスタンス化されているオブジェクトを通じて静的プロパティにアクセスすることはできません。
静的プロパティへのアクセスの構文形式は次のとおりです:
类名称::$静态属性名称
シンボル「::」は範囲解析演算子と呼ばれ、静的プロパティ、静的メソッド、定数にアクセスするために使用され、オーバーライドするためにも使用されますクラスとメソッドのメンバー。
クラス内のメンバーメソッドの静的プロパティにアクセスするには、静的プロパティの名前の前に演算子「self::」を追加します。クラス名::のみを使用すると、クラス外からクラス内の静的プロパティを呼び出すことができます。
注:
静的プロパティには、-> 演算子を使用してオブジェクトからアクセスできません。
他のすべての PHP 静的変数と同様に、静的プロパティは、式ではなく、リテラルまたは定数にのみ初期化できます。したがって、静的プロパティは整数または配列に初期化できますが、別の変数や関数の戻り値に初期化したり、オブジェクトを指すことはできません。
静的メソッドは、static キーワードによって変更されるメンバー メソッドです。オブジェクトによる制限がないため、クラスをインスタンス化せずにクラス内の静的メソッドを直接参照できます。 静的メソッドには、インスタンス化されたクラスのオブジェクトを通じてアクセスできます。
静的メソッド参照の構文形式は以下の通りです。
类名称::静态方法名称([参数1,参数2,...])
同様に、静的メソッド名の前に演算子「self::」を追加することで、クラス内のメンバメソッド内で静的メソッドを参照することができます。クラス名::のみを使用すると、クラス外からクラス内の静的メソッドを呼び出すことができます。
注:
静的メソッドでは、静的変数のみを呼び出すことができます。通常のメソッドは静的変数を呼び出すことはできません。
非静的メソッドを静的に呼び出すと、E_STRICT レベルのエラーが発生します。
静的メソッドはオブジェクトを通じて呼び出す必要がないため、疑似変数 $this は静的メソッドでは使用できません。
ヒントPHP 4 と互換性を保つために、静的プロパティと静的メソッドは、保護またはプライベートとして指定されていない場合、デフォルトでパブリックになります。
PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができますが、変数の値をキーワード self、parent、static にすることはできません。
説明<?php class website{ static $num="0"; // 定义静态变量 public function visit(){ // 定义visit方法 echo "您是第".self::$num."位访客!"; // 输出静态变量信息 self::$num++; // 静态变量做自增运算 } } echo '第一次实例化调用:<br />'; $website=new website(); // 实例化对象 $website->visit(); // 调用对象$website的visit()方法 $website->visit(); $website->visit(); echo '<br />第二次实例化调用:<br />'; $website2=new website(); // 改变对象句柄实例化对象 $website2->visit(); $website2->visit(); $website2->visit(); ?>
以上がPHP では、static キーワードを使用して静的プロパティと静的メソッドを宣言します。サンプル コードの共有。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。