1. static
① プロパティとメソッドは変更でき、それぞれ静的属性、静的メソッドと呼ばれ、クラス属性、クラスメソッドとも呼ばれます;
② 静的属性、静的メソッドはクラス名を使用して直接呼び出すことしかできません。 「クラス名 :: $ static 属性」、「クラス名 :: static メソッド ()」
person :: $ person ::say (); を使用します。オブジェクトの前に生成されます。
④ 静的メソッドでは、非静的プロパティまたはメソッドを呼び出すことはできません。属性メソッド、インスタンス化はまだ生まれていません)
⑤ クラス内では、self キーワードを使用してクラスを参照できます名前。 Er クラス person {
Static $ Sex = "Nan";
Function Say() {
echo Self :: $ sex;
⑥ static 属性は共有されます。つまり、多くの新しいオブジェクトも同じ属性を共有します。
2.final
①最終的に変更されたクラス、このクラスは最終クラスなので継承できません
②最終的に変更されたメソッド、このメソッドは最終的なメソッドなのでオーバーライドできません!
③finalは属性を変更できません。 ️ st キーワード; (Define () ステートメントと同様に、const の const キーワード宣言には $ を付けることはできず、すべて大文字にする必要があります。
定数は一度宣言すると変更できません。呼び出すときは、static と同じで、クラス名 Person:: constant を使用します。 】 结 [概要] いくつかの特殊な操作記号
1. 文字列 "" "" に接続するだけです
2, = & gt; 関連付けられたキーと値を宣言します ["key" = & gt; ]
3. -> オブジェクト ($this new によって生成されたオブジェクト) はメンバー属性とメンバーメソッドを使用します。
4. : : ①parent キーワードを使用して、親クラス内の同じ名前のメソッドを呼び出します。parent::say();
② クラス名 (および self) を使用して、静的プロパティ、静的メソッド、およびクラス内の定数。
シンプレックスモードはモノモーフィックモードとも呼ばれます
クラスはオブジェクトインスタンスを1つだけ持つことができることが保証できます。 : 点 実装ポイント:
① コンストラクターはプライベート化されており、オブジェクトの作成に new キーワードを使用することはできません。
② オブジェクトを取得する外部メソッドを提供します。メソッド内でオブジェクトが空かどうかを判定し、空であればオブジェクトを返します。 ③ インスタンスオブジェクトの属性と過去のオブジェクトのメソッドを元に戻します。静的。
④ その後は、オブジェクトの作成には提供される静的メソッドのみを使用できます。 $s1 = Singleton::getSingle();
1 class Singleton{ 2 private static $single=null; 3 private function __construct(){} 4 static function getSingle(){ 5 if(!self::$single){ 6 self::$single = new self(); 7 } 8 return self::$single; 9 }10 function __destruct(){11 echo "啊,我被销毁了。";12 }13 }14 15 $s1 = Singleton::getSingle();16 $s2 = Singleton::getSingle();17 $s3 = Singleton::getSingle();18 $s4 = Singleton::getSingle();
ログイン後にコピー
シングルプロフィットモードのシンプルなコード
4 シリアル化と逆シリアル化 (シリアル化と逆シリアル化)
|
一連の操作を通じてオブジェクトを文字列に変換するプロセスオブジェクトを逆シリアル化するプロセスは逆シリアル化と呼ばれます
3.シリアル化は使用されていますか?
① オブジェクトをネットワーク経由で送信する必要がある場合;
② オブジェクトをファイルまたはデータベースに保存する必要がある場合
4. オブジェクトのシリアル化と逆シリアル化を実装する方法。 $ str sleep __sleep()関数が自動的に実行されます配列内にない場合はシリアル化できません。
① object_ _wakeup() メソッドを逆シリアル化するときに自動的に呼び出されます。 ② 自動的に呼び出された場合は、逆シリアル化によって生成された新しいオブジェクト属性を再コピーするために使用されます。 ;
5 制約タイプ
1. 型制約: 変数の前にデータ型を追加して、変数が対応するデータ型のみを格納できるように制約することを指します (この操作は厳密に型指定された言語で一般的です。PHP では配列とオブジェクト型制約のみ)
。 2. 型制約が特定のクラスの場合、このクラスとこのクラスのサブクラス オブジェクトは渡すことができます。
3. PHP では、型制約は関数 middle の仮パラメーターでのみ発生します。 Er Class Person {}
Class Student Extend
Function Func (person $ P) {
// 制約関数のパラメータは、 person と person サブクラスのみを受け入れます
echo "111"
echo $ p-& gt;名前;
フォーム、これを「匿名関数」と呼びます。
6 マジックメソッドのまとめ
1. __construct( ): 自動的に呼び出されるコンストラクターオブジェクトの新規作成時 2. __destruct( ): デストラクター、オブジェクトが破棄されるときに自動的に呼び出されます 3. __get(): クラス内のプライベート プロパティにアクセスするときに自動的に呼び出されます。読み取った属性名を渡して $this->属性名を返す 4. __set(): クラスのプライベート属性に値を代入するときに自動的に呼び出されます。設定する必要がある属性名と属性値を渡します 5. __isset(): isset() を使用してオブジェクトのプライベート属性を検出するときに自動的に呼び出されます。検出された属性名を渡し、 isset($this->属性名) を返します 6. __unset(): unset() を使用してオブジェクトのプライベート属性を削除するときに自動的に呼び出されます。削除された属性名を渡し、メソッド内で unset($this->attribute name) を実行します。 7. __toString(): echo を使用してオブジェクトを出力するときに自動的に呼び出されます。オブジェクトを出力したい場合は、実際のコンテンツを返します。戻り値は文字列である必要があります。 8. __call(): クラス内の未定義または公開されていないメソッドを呼び出すときに自動的に呼び出されます。呼び出される関数名とパラメーター リストの配列を渡します。 9. __clone(): clone キーワードを使用してオブジェクトを複製するときに自動的に呼び出されます。この関数は、新しくクローンされたオブジェクトを初期化してコピーします。 | 10. __sleep(): オブジェクトがシリアル化されるときに自動的に呼び出されます。値がシリアル化できるプロパティである配列を返します。
11. __wakeup(): オブジェクトが逆シリアル化されるときに自動的に呼び出されます。新しく生成されたオブジェクトを逆シリアル化するには、初期化してコピーします。 12. __autoload(): 関数はクラスの外で宣言する必要があります。ライブクラスをインスタンス化するときに自動的に呼び出されます。インスタンス化したクラス名を渡すことで、対応するクラスファイルをクラス名を使用して自動的にロードできます。勉強中は間違った箇所があるかも知れませんが、指摘に対する批判は大歓迎です。
反省、見直し、毎日少しずつ得る--------------------- より良い自分を目指して