ホームページ > バックエンド開発 > PHPの問題 > PHPの静的メソッドとは何ですか

PHPの静的メソッドとは何ですか

青灯夜游
リリース: 2023-03-13 09:06:02
オリジナル
2672 人が閲覧しました

PHP では、static キーワードで変更されたメンバーメソッドを静的メソッドと呼びます。静的メソッドのメモリ空間は固定されており、「クラス名::静的メソッド()」でアクセスできるのはクラス内の静的メンバーのみです。静的メソッドにアクセスするためのステートメント。

PHPの静的メソッドとは何ですか

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

PHP で、静的キー この単語によって変更されるメンバ プロパティとメンバ メソッドを静的プロパティと静的メソッドと呼びます。ここではこれらをまとめて静的メンバと呼ぶこともあります。クラス内の静的メンバは、クラス内の一般的なメンバとは異なります。静的メンバオブジェクト内ではインスタンス化されません。つまり、クラスをインスタンス化せずに、クラスを通じて静的メンバーにアクセスできます。

クラス内で静的変数を宣言するのは簡単です。クラスの通常のメンバーの前に static キーワードを追加して、この通常のメンバーを静的メンバーに変えることができます。このようにして、クラスをインスタンス化せずに、クラス内のこれらの静的メンバーに直接アクセスできます。静的メンバーにアクセスするための構文形式は次のとおりです。

类名::$静态属性
类名::静态方法()
ログイン後にコピー

:: シンボルは範囲解決演算子と呼ばれ、静的メンバー、静的メソッド、および定数にアクセスするために使用されます。のクラスのメンバーとメソッドをオーバーライドするためにも使用されます。

クラス内のメンバー メソッドの静的プロパティにアクセスする場合は、静的プロパティの名前の前に演算子 self:: を追加するだけです。

#静的メソッド

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

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

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

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

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

静的メソッドの利点:

(1) コード内のどこでも使用できます (クラスにアクセスできることが前提)。

(2) クラスの各インスタンスは、クラスで定義された静的プロパティにアクセスでき、静的プロパティを使用して値を設定できます。値は、クラスのすべてのオブジェクトで使用できます。

( 3) いいえ、静的プロパティまたは静的メソッドにアクセスするには、インスタンス オブジェクトが必要です。

#静的メソッドと通常のメソッドの違い

    静的メソッドは、オブジェクトを作成する前に使用できます。静的メソッド このメソッドは、new によって生成されたオブジェクトを通じて呼び出す必要があります。
  • 静的メソッドは、クラス名::メソッド名を通じて直接呼び出すことができます。通常のメソッドは、インスタンス、つまり新しいオブジェクトを作成し、オブジェクト名 -> メソッド名を通じて静的クラスを呼び出す必要があります。静的メンバーのみを含めることができ、それ以外の場合はコンパイル エラーがスローされます。
  • 非静的クラスには、非静的メンバーと静的メンバーの両方を含めることができます。静的クラスはインスタンス化できません。インスタンス化できない理由は、静的クラスを使用すると、C# コンパイラがクラスを抽象としてマークするためです。コンパイラは型にインスタンス コンストラクターを生成しないため、静的クラスはインスタンス化されません。
  • 非静的クラスはインスタンス化でき、静的メンバーはインスタンス化できます。静的メンバーはクラスに属しているため、Access クラスを通じてのみアクセスできます。
  • 推奨学習: 「
PHP ビデオ チュートリアル

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート