違い: 静的メソッドは「クラス名::メソッド名」を通じて直接呼び出すことができますが、通常のメソッドはインスタンス、つまり新しいオブジェクトを作成してから「オブジェクト名->」を通じて呼び出す必要があります。呼び出すメソッド名」。静的メソッドはクラスの静的メンバーのみにアクセスできますが、通常のメソッドはクラスの任意のメンバーにアクセスできます。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
静的メモリ空間は固定されており、比較的リソースが節約されます。
インスタンスを作成するには、新しいメモリを開く必要があります。リソースを消費する静的メソッドはクラスに属しており、クラスがインスタンス化される前に使用できます。
静的メソッドはクラス内の静的メンバーにのみアクセスできます;
静的変数と他の静的メソッドのみが静的内部に表示できます! また、このようなキーワードは静的メソッドでは使用できません。クラス全体に属するため、
静的メソッドと静的変数は作成後常に同じメモリを使用しますが、インスタンスを使用すると複数のメモリが作成されます。
静的メソッドはクラスがインスタンス化される前に使用できるため、クラス内の任意のメンバーにアクセスできます。静的変数はメモリを割り当てる前にインスタンス化する必要があります。
静的メソッドはインスタンス化よりも効率的です。静的メソッドの欠点は、インスタンス化されたメソッドは自動的に破棄されないことです。
静的メソッドはオブジェクトを作成する前に使用できますが、非静的メソッドは新しいオブジェクトを通じて呼び出す必要があります。 。
静的メソッドは、クラス名::メソッド名を通じて直接呼び出すことができます。通常のメソッドはインスタンス、つまり新しいオブジェクトを作成し、それをオブジェクト名 -> メソッド名を通じて呼び出す必要があります。静的クラスには静的メンバーのみを含めることができ、それ以外の場合はコンパイル エラーがスローされます。
非静的クラスには、非静的メンバーと静的メンバーの両方を含めることができます。静的クラスはインスタンス化できません。インスタンス化できない理由は、静的クラスを使用すると、C# コンパイラがそのクラスを抽象クラスとしてマークしてしまうためです。また、コンパイラは型にインスタンス コンストラクターを生成しないため、静的クラスはインスタンス化できなくなります。
非静的クラスはインスタンス化でき、静的メンバーはインスタンス化できます。静的メンバーはクラスに属しているため、classes.access を通じてのみアクセスできます。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がphpの静的メソッドと通常のメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。