PHPオブジェクト指向の基礎知識を紹介します
1. インターフェースインターフェースの定義、クラス定義クラス、クラスはabstractとfinal修飾子をサポートし、abstractはabstractクラス、abstractクラスに変更されます
直接のインスタンス化はサポートされておらず、最終的に変更されたクラス/メソッドは継承/メソッドのオーバーライドできません。
2. インターフェイスの実装はimplementsを介して行われ、クラスの継承は拡張されます
3. 静的変数と定数 (static、const)
a. 定数を宣言するときに変数名の前にドル修飾子 $ を追加する必要はありませんが、静的変数には必須です
b. どちらもクラスを通じてアクセスされます。静的変数メソッドは変数名の前に追加する必要があります。これは良いことです
c. 定数を宣言する場合、アクセス許可修飾子はサポートされません。定数のデフォルトは public です。
リーリー4. $this を介してクラス内の非静的/定数変数とメソッドにアクセスし、parent を介して親クラスにアクセスし、
self を介してクラス内の静的変数とメソッドにアクセスします。self は本質的にクラスを指し、からもアクセスできます。静的
5. static と self の違いは、self は現在のクラスにも作用する解析コンテキストを参照し、static はそれを含むクラスの代わりに呼び出されるクラスを参照することです。典型的な例はシングルトンです。
リーリー
7. クラスでインターセプターを使用します。PHP インターセプターには、__get、__set、__inset、__unset、__call のみに焦点を当てます。
リーリー
9. オブジェクトは clone によってコピーされます。clone キーワードは、新しいオブジェクトを生成するために参照によってコピーされます。
a.単純な型の代入
リーリーb. オブジェクトのコピーが含まれます
リーリーこの結果は明らかに私たちが期待するものではありません。私たちが期待しているのは、ab が関係のない 2 つの独立したオブジェクトであるということです。
この問題を解決するには、クラス内で __clone を実装します。外部で clone を呼び出すと、内部でそのクラスの __clonef メソッドが呼び出されるため、 __clone をオーバーライドすることでクローンを制御できます。例リーリー
__clone メソッドについて知っておく必要があります。このメソッドは、上記の例 b のように、元のオブジェクトではなく、複製されたオブジェクトに対して呼び出されます。$b = clone $a; //実行処理: 基本コピーオブジェクト $a ---> $b は __clone() を実行します
true