何もすることがなかったとき、PHPのOO、アクセス制御修飾子、self、parent、const、staticキーワード、arrowoperatorについての情報を探していました(本にもあります)と呼ばれる…つまり「->」)と範囲解析演算子(つまり二重コロン「::」)ですが、これは C# 言語の OO と同じだと思います。理解していますが、PHP の OO のアイデアは依然として使用されるべきであることを明確にするために見ていきたいと思います。
---------------------------------------------- --- ----------------------------------
静的クラスのメンバーとメソッドを宣言して、必要ないようにします。クラス インスタンス。クラス オブジェクトのインスタンスを介して静的メンバー宣言にアクセスすることはできません (静的メソッドではアクセスできます)。
静的宣言は可視性宣言の後に来る必要があります。 PHP 4 との互換性のため、可視性が宣言されていない場合、メンバーとメソッドはパブリックとして宣言されているかのように扱われます。
静的メソッドは非オブジェクト インスタンスを呼び出すことができるため、静的として宣言されたメソッドでは疑似変数 $this を使用できません。
実際、静的メソッドの呼び出し形式はコンパイル時に決定されます。宣言する必要があるクラス名を使用する場合、そのアプローチは完全な識別であり、継承 ルールは適用されません。このアプローチは、宣言する必要があるクラス名を使用する場合に完全に有効であり、継承の使用に関する規則はありません。
self が宣言されている場合、self は現在属しているクラスによって解釈されます。継承ルールも適用されません。静的プロパティには、矢印演算子 ->. を使用して非静的メソッドからアクセスすることはできません。これにより、E_STRICT レベルの警告が生成されます。
コードは次のとおりです:
<?php class Foo { public static $my_static='foo'; public function staticValue(){ return self::$my_static; } } class Bar extends Foo { public function fooStatic(){ return parent::$my_static; } } print Foo::$my_static."/n"; $foo = new Foo(); print $foo->staticValue()."/n"; print $foo->my_static."/n";// Undefined "Property" my_static // $foo::my_static is not possible print Bar::$my_static."/n"; $bar = new Bar(); print $bar->fooStatic()."/n"; ?>
コードは次のとおりです:
//静态方法实例(Static method example) <?php class Foo { public static function aStaticMethod() { } } Foo::aStaticMethod(); ?>
各基本クラスで定数を定義して、変更しないようにすることができます。定数は、$ 記号を使用して宣言または使用しないという点で通常の変数とは異なります。静的メンバーと同様に、オブジェクトのインスタンスを通じて定数値にアクセスすることはできません (代わりに $object::constant を使用してください)。定数値は変数、クラス メンバー、または数式ではなく、定数 式 である必要があります。または関数呼び出しの結果。
りー以上がphpOO の静的キーワードとクラス定数の例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。