PHP クラスの静的メソッドと静的変数
PHP では、クラス メソッド/変数にアクセスする方法が 2 つあります。
1. オブジェクト $object = new Class() を作成し、次に「->」を使用します。 " 呼び出し先: $object->attribute/function (変数/メソッドがアクセス可能である場合)。
2. 静的か非静的かに関係なく、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります:
A. 変数の場合、その変数にアクセスできる必要があります。
B. メソッドの場合、アクセス可能であることに加えて、次の条件も満たす必要があります。
b1) 静的メソッドの場合、特別な条件はありません。
b2)は非静的メソッドなので、メソッド内で使用されていない場合は変更する必要があります。 $this は非静的変数/メソッドが呼び出されないことを意味します。 もちろん、静的変数/メソッドを呼び出すことには問題はありません。
次に、$object->… の使用と class::… の使用の違いを見てみましょう:
1. $object->… を使用する場合、コンストラクターを実行する必要があります。オブジェクトを作成します。
2. オブジェクトを作成するコンストラクターを実行せずに、class::... を使用して静的メソッド/変数を呼び出します。3. 非静的メソッドを呼び出すには、class::... を使用します。変数を使用できるため、オブジェクトを作成するためにコンストラクターを実行する必要はありません。
明らかに次のような違いが存在します:
1. 静的変数
静的メンバーは 1 つの変数値のみを保持し、この変数値はすべてのインスタンスに対して有効です。つまり、すべてのインスタンスがこのメンバーを共有します。
2. 静的メソッド
静的メソッドは class::... を使用して直接呼び出すことができますが、非静的メソッドは、前述のように、class::... メソッドを使用して呼び出す前に特定の制限を満たす必要があります。