staticメンバー: 静的クラスのメンバーは、静的メンバーであるstatic修飾子を使用して追加されます。静的であるため、この静的メンバーにアクセスするには、クラス名と静的メンバー名を直接使用できます。メモリ内に存在し、静的メンバーではないメンバーは、メモリが割り当てられる前にインスタンス化する必要があるため、静的メンバーは非静的メンバーにアクセスできません。静的メンバーはメモリ内に存在するため、非静的メンバーはクラス内の静的メンバーに直接アクセスできます。 1. 静的グローバル変数
定義: グローバル変数の前にキーワード static を追加すると、変数は静的グローバル変数として定義されます。
特徴:
A. この変数はグローバルデータ領域にメモリを割り当てます。 B. 初期化: 明示的に初期化されていない場合、暗黙的に 0 に初期化されます (明示的に初期化されない限り、自動変数はランダムです)。
C. Access 変数はソース ファイル内でのみ表示され、定義の時点からこのファイル内で終了する必要があります。
2. 静的ローカル変数特徴:
A. この変数はグローバルデータ領域にメモリを割り当てます。 B. 初期化: 明示的に初期化されない場合、暗黙的に 0 に初期化され、その後の
function呼び出しは初期化されなくなります。
C. プログラムの終了まで常にグローバルデータ領域に存在します。ただし、そのスコープはローカル スコープであり、それを定義する関数またはステートメント ブロックが終了すると、そのスコープも終了します。 静的データ メンバーは、通常のデータ メンバーと同じパブリック、保護、およびプライベートのアクセス ルールに従います。
静的データ メンバーはグローバル データ領域にメモリを割り当て、このクラスのすべての
オブジェクトによって共有されるため、特定のクラス Object に属しており、そのスコープはクラス オブジェクトが生成されていないときに表示されます。つまり、クラスのインスタンスが生成されていないときに操作できます。静的データ メンバーの初期化は、一般的なデータ メンバーの初期化とは異なります。静的データ メンバーの初期化の形式は次のとおりです:
データ型>::= クラスの静的データ メンバーには 2 つのアクセス形式があります。
<クラスオブジェクト名>.<静的データメンバ名>or<クラス型名>::<静的データメンバ名>
静的データメンバのアクセス権限が許可されている場合(つまりpublic) member) を使用して、プログラム内で上記の形式を使用して 静的データ メンバーを参照できます。
静的データ メンバーは、主に各オブジェクトが同じ 静的変数の初期化class A { public $f1 = 'xxxx'; static public $f2 = 100; }
class A { private $child; public function construct() { $this->child = new B(); } }
class A { static public $child; } A::$child = new B();
class A { static private $child; static public initialize() { self::$child = new B(); } } A::initialize();
以上がPHPの静的メンバー変数と静的変数の初期化について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。