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

PHP クラスの静的メソッドと静的変数の違い

WBOY
WBOYオリジナル
2016-07-25 08:52:39747ブラウズ
この記事では、PHP クラスの静的メソッドと静的変数の使用法の違いを紹介します。非静的メソッドの場合は、$this を使用せずにメソッドを変更する必要があります。つまり、非静的変数/メソッドは呼び出されません。もちろん、静的変数/メソッドの呼び出しには問題ありません。

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 までご連絡ください。