違い: 1. 静的メソッドはスペースやその他の操作を開く必要がなく直接呼び出すことができますが、インスタンス メソッドはスペースを開く必要があります; 2. 静的メソッドはスペースと同じデータを共有しますが、インスタンス メソッドはスペースを開く必要があります。同じ空間とデータを共有しない; 3. 静的メソッドはチェーン書き込みをサポートしませんが、インスタンス メソッドはチェーン書き込みをサポートします。
この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター。
静的メソッドはメモリのコピーを 1 つだけ占有し、コードが読み込まれるときに作成されます。インスタンス化メソッドまたはクラスは、次の場合にのみ作成されます。新しい 作成したばかりです。インスタンス化された各オブジェクトは異なるインスタンスを表し、静的コピーは 1 つだけ存在します。静的メソッドがマルチスレッドでリソースを共有するという事実に特に注意してください。
相違点:
1. 静的メソッド呼び出しには、新しいクラス名::メソッド名は必要ありません。
例:
User::find();
注: 静的メソッドでは非静的プロパティを呼び出すことはできません。
インスタンス メソッドには new が必要です。
例:
12$userObj = new User;$userObj->find();
2. メモリ内には静的メソッドのコピーが 1 つだけあり、リソースは PHP ライフサイクル内で共有されます。
注: 静的メソッドとプロパティはクラスのロード時にロードされるため、静的メソッドが多すぎるとより多くのメモリを消費します。
インスタンス メソッドが新しくなるたびに、独立したスペースが開かれます。つまり、メモリ内に複数のコピーが存在します。
3. 静的メソッドのパフォーマンス: 直接呼び出し、スペースやその他の操作を開く必要がなく、時間と効率の点で優れています
インスタンス メソッドはスペースやその他の操作を開くのに時間がかかります
4. 静的メソッドは同じスペースと同じデータを共有します。一部のシナリオでは、静的メソッドの方が適しています。
サンプル メソッド複数のインスタンスは同じスペースとデータを共有しません
5. 静的メソッド チェーンの記述は、
インスタンス メソッドのサポートをサポートしていません。例:
1$userObj->fields('uid')->where('uid>0')->find();
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPの静的メソッドとインスタンス化されたメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。