ホームページ  >  記事  >  バックエンド開発  >  PHP クラスの静的ステップと静的変数

PHP クラスの静的ステップと静的変数

WBOY
WBOYオリジナル
2016-06-13 12:28:44816ブラウズ

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::... を使用します。変数を使用できるため、オブジェクトを作成するためにコンストラクターを実行する必要はありません。

すると、2と3は同じなので、静的メソッド/変数が存在する意味は何でしょうか?

明らかに次のような違いが存在します:
1. 静的変数
静的メンバーは 1 つの変数値のみを保持し、この変数値はすべてのインスタンスに対して有効です。つまり、すべてのインスタンスがこのメンバーを共有します。
2. 静的メソッド
静的メソッドは class::... を使用して直接呼び出すことができますが、非静的メソッドは、前述のように、class::... メソッドを使用して呼び出す前に特定の制限を満たす必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。