ホームページ >バックエンド開発 >PHPチュートリアル >PHPにおける静的クラスと静的変数の使用例の比較分析
この記事では主に、php での静的クラスと静的変数の使用法の違いを紹介します。php での静的クラスと静的変数の定義、機能、および使用スキルを例とともに詳しく分析します。必要な方はこの記事を参照してください。
この例では、PHP での静的クラスと静的変数の使用法の違いを分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
static は、静的オブジェクトまたは静的変数を定義します。 static で定義された変数またはクラス メソッドの特性については、この記事の
1 を参照してください。 object$ object = new Class() を使用して、$object->attribute/function を呼び出します (変数/メソッドがアクセス可能である場合)
2 クラスのメソッド/変数を直接呼び出します。 : class::attribute/ 関数。静的か非静的かに関係なく、前提条件があります。A. 変数の場合は、変数にアクセスできる必要があります。B.メソッドがアクセス可能であることに加えて、満たす必要もあります。① 静的メソッドの場合、特別な条件はありません ② 非静的メソッドの場合、$ を使用せずにメソッドを変更する必要があります。これは、つまり、静的でない変数/メソッドは呼び出されません。もちろん、静的変数/メソッドを呼び出すことに問題はありません。
次に、$object->… の使用とクラスの使用の違いを見てみましょう。 ::…:1. $object->… を使用するには、
コンストラクターを実行してオブジェクトを作成する必要があります。
2. class::... を使用して、コンストラクターを実行せずに静的メソッド/変数を呼び出します。オブジェクトを作成します。3. オブジェクトを作成するコンストラクターを実行せずに、class::... を使用して非静的メソッド/変数を呼び出します。次に、2 と 3 は同じであるため、奇妙なことに Out です。静的メソッド/変数の存在のポイント? 静的: クラスのメンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます (静的メソッドを除く) 静的メンバーはクラスに属しており、クラスには属しません。ただし、クラスのオブジェクト インスタンスはすべて共有できます。例のコードは次のとおりです:<?php Class Person{ // 定义静态成员属性 public static $country = "中国"; // 定义静态 成员方法 public static function myCountry() { // 内部访问静态成员属性 echo "我是".self::$country."人<br />"; } } class Student extends Person { function study() { echo "我是". parent::$country."人<br />"; } } // 输出成员属性值 echo Person::$country."<br />"; // 输出:中国 $p1 = new Person(); //echo $p1->country; // 错误写法 // 访问静态成员方法 Person::myCountry(); // 输出:我是中国人 // 静态方法也可通过对象访问: $p1->myCountry(); // 子类中输出成员属性值 echo Student::$country."<br />"; // 输出:中国 $t1 = new Student(); $t1->study(); // 输出:我是中国人 ?>
この例を実行すると、出力は次のようになります:
中国
私は中国人です
私は中国人です
中国
私は中国人です
slef:: $country slef:: myCountry()クラス内の静的メンバー属性またはメソッドにアクセスするにはサブクラス、parent:: を使用します ($parent ではないことに注意)、コードは次のとおりです:
parent:: $country parent:: myCountry()静的メンバーへの外部アクセス
プロパティとメソッド はクラス名/サブクラス名::、コードは次のとおりです:
Person::$country Person::myCountry() Student::$countryただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。
例、静的変数の宣言、コードは次のとおりです:
<?PHP function foo(){ static $int = 0;// correct static $int = 1+2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too) $int++; echo $int; } ?>例、静的変数の使用例、コードは次のとおりです:
<?PHP function Test() { static $w3sky = 0; echo $w3sky; $w3sky++; } ?>
() 関数が呼び出されると、$w3sky の値が出力され、1 ずつインクリメントされます。
<?PHP function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?>注: 静的変数は上記の例に従って宣言できます。
式
の結果が宣言で使用されている場合、その代入により解析エラーが発生します。 .以上がPHPにおける静的クラスと静的変数の使用例の比較分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。