静的とは、静的オブジェクトまたは静的変数を定義することです。関連する例を読んだ後、静的で定義される変数またはクラスメソッドの特徴を理解します。この記事で。
1. オブジェクト $object = new Class() を作成し、変数/メソッドがアクセス可能な場合は、「->」を使用して $object->attribute/function を呼び出します。
2. 静的か非静的かに関係なく、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります。A. 変数の場合は、その変数にアクセスできる必要があります。
B. メソッドの場合、メソッドがアクセス可能であることに加えて、要件も満たす必要があります。
①静的メソッドであれば特別な条件はありません
② 非静的メソッドの場合は、$this を使用しない、つまり非静的変数/メソッドを呼び出さないようにメソッドを変更する必要があります。 もちろん、静的変数/メソッドを呼び出しても問題ありません。メソッド
それでは、 $object->… の使用と class::…:
の使用の違いを見てみましょう
1. $object->…を使用する場合、コンストラクターを実行してオブジェクトを作成する必要があります。2. オブジェクトを作成するコンストラクターを実行せずに、class::... を使用して静的メソッド/変数を呼び出します。
3. class::... を使用して非静的メソッド/変数を呼び出します。オブジェクトを作成するためにコンストラクターを実行する必要はありません。すると、2と3は同じなので、静的メソッド/変数の存在意義は何でしょうか?
静的: クラス メンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます。静的メンバーは、クラスに属し、どのオブジェクト インスタンスにも属しません。クラスのオブジェクト インスタンスは共有できます。
例、コードは次のとおりです:
コードは次のとおりです:
クラスの人{
//静的メンバーのプロパティを定義します
public static $country = "中国";
私は中国人です
中国
私は中国人です
概要: クラス内の静的メンバー属性またはメソッドにアクセスするには、self:: ($slef ではないことに注意) を使用します。コードは次のとおりです。
コードは次のとおりです:
slef:: $country
slef::my Country()
サブクラス内の親クラスの静的メンバーのプロパティまたはメソッドにアクセスするには、parent:: ($parent ではないことに注意) を使用します。コードは次のとおりです。
コードは次のとおりです:
親:: $country
親::my Country()
静的メンバーのプロパティとメソッドへの外部アクセスはクラス名/サブクラス名::、コードは次のとおりです:
コードは次のとおりです:
人::$国
人::私の国()
学生::$国
ただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。
例、静的変数を宣言する場合、コードは次のとおりです:
コードは次のとおりです:
関数 foo(){
static $int = 0 // 正しい
; static $int = 1+2; // (式なので) 間違っていますstatic $int = sqrt(121); // 間違っています (式でもあるので)
$int++;エコー $w3sky;
$w3sky++;静的変数と再帰関数の例、コードは次のとおりです:
コードは次のとおりです:
注: 静的変数は、上記の例に従って宣言できます。式の結果を使用して宣言内で値を代入すると、解析エラーが発生します。
http://www.bkjia.com/PHPjc/944486.html
。