"変数/メソッドがアクセス可能な場合は、$object->attribute/function を呼び出します。 2. 静的か非静的かに関係なく、クラスのメソッド/変数 (class::attribute/function) を直接呼び出します。ただし、前提条件があります。 A. 変数の場合、その変数にアクセスできる必要があります。 B. メソッドであれば、"/> "変数/メソッドがアクセス可能な場合は、$object->attribute/function を呼び出します。 2. 静的か非静的かに関係なく、クラスのメソッド/変数 (class::attribute/function) を直接呼び出します。ただし、前提条件があります。 A. 変数の場合、その変数にアクセスできる必要があります。 B. メソッドであれば、">
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. 非静的メソッド/変数を呼び出すためにクラス::... を使用する必要はありません。コンストラクターを実行してオブジェクトを作成します。
すると、2と3は同じなので、静的メソッド/変数の存在意義は何でしょうか?
明らかに次のような違いが存在します:
1. 静的変数
静的メンバーは 1 つの変数値のみを保持し、この変数値はすべてのインスタンスに対して有効です。つまり、すべてのインスタンスがこのメンバーを共有します。
2. 静的メソッド
静的メソッドは class::... を使用して直接呼び出すことができますが、非静的メソッドは、前に述べたように、 class::... メソッドを使用して呼び出す前に特定の制限を満たす必要があります。
上記では、静的変数の内容も含めて、PHP クラスの静的変数、静的メソッド、静的変数の使用法を紹介しましたが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。