ホームページ  >  記事  >  バックエンド開発  >  phpの静的メソッドと通常のメソッドの違いは何ですか

phpの静的メソッドと通常のメソッドの違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-03-11 17:48:533050ブラウズ

違い: 静的​​メソッドは「クラス名::メソッド名」を通じて直接呼び出すことができますが、通常のメソッドはインスタンス、つまり新しいオブジェクトを作成してから「オブジェクト名->」を通じて呼び出す必要があります。呼び出すメソッド名」。静的メソッドはクラスの静的メンバーのみにアクセスできますが、通常のメソッドはクラスの任意のメンバーにアクセスできます。

phpの静的メソッドと通常のメソッドの違いは何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

静的メソッド

  • 静的メモリ空間は固定されており、比較的リソースが節約されます。

  • インスタンスを作成するには、新しいメモリを開く必要があります。リソースを消費する静的メソッドはクラスに属しており、クラスがインスタンス化される前に使用できます。

  • 静的メソッドはクラス内の静的メンバーにのみアクセスできます;

  • 静的変数と他の静的メソッドのみが静的内部に表示できます! また、このようなキーワードは静的メソッドでは使用できません。クラス全体に属するため、

  • 静的メソッドと静的変数は作成後常に同じメモリを使用しますが、インスタンスを使用すると複数のメモリが作成されます。

通常のメソッド

  • 静的メソッドはクラスがインスタンス化される前に使用できるため、クラス内の任意のメンバーにアクセスできます。静的変数はメモリを割り当てる前にインスタンス化する必要があります。

  • 静的メソッドはインスタンス化よりも効率的です。静的メソッドの欠点は、インスタンス化されたメソッドは自動的に破棄されないことです。

主な違い

  • 静的メソッドはオブジェクトを作成する前に使用できますが、非静的メソッドは新しいオブジェクトを通じて呼び出す必要があります。 。

  • 静的メソッドは、クラス名::メソッド名を通じて直接呼び出すことができます。通常のメソッドはインスタンス、つまり新しいオブジェクトを作成し、それをオブジェクト名 -> メソッド名を通じて呼び出す必要があります。静的クラスには静的メンバーのみを含めることができ、それ以外の場合はコンパイル エラーがスローされます。

  • 非静的クラスには、非静的メンバーと静的メンバーの両方を含めることができます。静的クラスはインスタンス化できません。インスタンス化できない理由は、静的クラスを使用すると、C# コンパイラがそのクラスを抽象クラスとしてマークしてしまうためです。また、コンパイラは型にインスタンス コンストラクターを生成しないため、静的クラスはインスタンス化できなくなります。

  • 非静的クラスはインスタンス化でき、静的メンバーはインスタンス化できます。静的メンバーはクラスに属しているため、classes.access を通じてのみアクセスできます。

推奨学習: 「PHP ビデオ チュートリアル

以上がphpの静的メソッドと通常のメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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