14.final キーワードの適用 このキーワードは、クラスとメソッドの定義にのみ使用できます。final キーワードは、PHP では定数を定義するため、define() 関数を使用して定義することはできません。メンバーのプロパティを定義するために使用されます。
final キーでマークされたクラスは継承できません。
コード スニペット
final class Person{
… …
}
class Student extends Person{
}
次のエラーが表示されます:
致命的なエラー: Class Student は Final から継承できません。 class (Person)
final キーでマークされたメソッドはサブクラスによってオーバーライドできず、最終バージョンです。 ) {
}
}
次のエラーが発生します:
致命的なエラー: 最終メソッド Person::say() をオーバーライドできません
15. static キーワードと const キーワードの使用
static キーワードは、クラス内のメンバー プロパティとメンバー メソッドを記述します。静的として;静的メンバーの利点は何ですか?
先ほど人間を「人」と宣言しました。「人」クラスに「人が属する国」の属性を追加すると、それぞれ「人」クラスを使用してインスタンスを作成できます。オブジェクトは「属する国」という属性を持ちます。プロジェクトが中国人向けに開発されている場合、各オブジェクトは「中国」という属性を持ち、「国」を作成する場合は他の属性が異なります。属性を静的
メンバーに設定すると、メモリ内に国属性が 1 つだけ存在し、数百以上のオブジェクトがこの属性を共有できるようになります。静的メンバーはクラスに属し、どのクラスにも属さないため、
静的メンバーは外部アクセスを制限できます。オブジェクト インスタンス。クラスが初めてロードされるときに割り当てられる領域であり、他のクラスからはアクセスできず、クラスのインスタンスとのみ共有されます。これを分析してみましょう。メモリの観点から見ると、メモリは論理的に 4 つのセグメントに分割され、オブジェクトは「ヒープ メモリ」に配置され、オブジェクトへの参照は「スタック メモリ」に配置されます。 「初期化された静的セグメント」。以下に示すように、ヒープ メモリ内のすべてのオブジェクトで共有できます。 gif');" src="http://www.bkjia.com/uploads/allimg/131016/0919403415-0.gif" onload="if(this.width>'700')this.width='700' ;if(this.height>'700')this.height='700';" border=0>
グローバル変数とよく似たクラスの静的変数 変数は、クラスのすべてのインスタンスで共有できます。は、グローバル関数と同様のクラスの静的メソッドです。
コードスニペット
コードをコピーします
コードは次のとおりです:
the person
public static $my Country="China";
// var $name; //その人の名前
//これは person
public static function Say(){ "; } } //静的属性を出力 echo Person::$my Country;
//静的メソッドにアクセス
person::say();
//静的属性の割り当てを再度与える
person:: $my Country="米国";