ホームページ  >  記事  >  バックエンド開発  >  PHPの静的メンバー変数とは何ですか?

PHPの静的メンバー変数とは何ですか?

怪我咯
怪我咯オリジナル
2017-07-23 13:31:333371ブラウズ

静的メンバー: 静的クラスのメンバーは、静的メンバーである静的修飾子を追加します。静的メンバーはメモリ内に存在し、非静的であるため、クラス名 + 静的メンバー名を使用してこの静的メンバーに直接アクセスできます。静的メンバーはインスタンス化される必要があるため、静的メンバーは非静的メンバーにアクセスできません。静的メンバーはクラス内の静的メンバーに直接アクセスできます。

1.変数

の定義: グローバル変数の前にキーワード static を追加すると、変数は静的グローバル変数として定義されます。

特徴:

A. この変数はグローバルデータ領域にメモリを割り当てます。

B. 初期化: 明示的に初期化されていない場合、暗黙的に 0 に初期化されます (明示的に初期化されない限り、自動変数はランダムです)。

C. Access 変数はソース ファイル内でのみ表示され、定義の時点からこのファイル内で終了する必要があります。

2. 静的ローカル変数

特徴:

A. この変数はグローバルデータ領域にメモリを割り当てます。

B. 初期化: 明示的に初期化されない場合、暗黙的に 0 に初期化され、後続の関数呼び出しは初期化されなくなります。

C. プログラムの終了まで常にグローバルデータ領域に存在します。ただし、そのスコープはローカル スコープであり、それを定義する関数またはステートメント ブロックが終了すると、そのスコープも終了します。

静的データ メンバーは、通常のデータ メンバーと同じパブリック、プロテクト、およびプライベートのアクセス ルールに従います。

静的データ メンバーはグローバル データ領域にメモリを割り当て、このクラスに属するすべてのオブジェクトによって共有されるため、このクラスには属しません。スコープは、クラス オブジェクトが生成されていないとき、つまりクラスのインスタンスが生成されていないとき、それを操作できます。静的データ メンバーの初期化は、一般的なデータ メンバーの初期化とは異なります。静的データ メンバーの初期化の形式は次のとおりです:

データ型>::=

クラスの静的データ メンバーには 2 つのアクセス形式があります:

. または ::

静的データメンバーのアクセス権限が許可されている場合(つまりパブリックメンバー) 、プログラム内で使用できます。上記の形式に従って静的データ メンバーを参照します。

静的データ メンバーは、主に各オブジェクトが同じ属性を持つ場合に使用されます。たとえば、預金クラスの場合、各インスタンスの金利は同じです。したがって、金利は預金クラスの静的データ メンバーとして設定する必要があります。これには 2 つの利点があります。まず、定義されているデポジット クラス オブジェクトの数に関係なく、すべてのインタレスト データ メンバーがグローバル データ領域に割り当てられたメモリを共有するため、ストレージ領域が節約されます。第二に、利息を変更する必要がある場合は、一度変更する限り、すべての預金オブジェクトの利息が変更されます。

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

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