以下は、一般的に使用されるいくつかのマジック メソッドの簡単な紹介です:
1. __set() メソッド
は、未定義または非表示のクラス属性に値を割り当てるときに自動的に呼び出されます。現在の環境の __set() メソッド。このメソッドを定義する構文形式は以下のとおりです。
public function __set($key, $value){
... ... ;
}
このうち、パラメータ $key は操作対象の変数名、$value は変数 $key の値です。
2. __get() メソッド
現在の環境で未定義または非表示のクラス属性を呼び出したり取得したりする場合、メソッドの構文形式を定義するために __get() メソッドが自動的に呼び出されます。次のようになります。
public function __get($name){
... ... ;
}
パラメータ $name は、操作される変数の名前です。
3. __isset() メソッド
isset() または empty() 関数が、アクセスできない属性またはクラス内に存在しない属性に対してクラスの外部で使用される場合、__isset()メソッドが自動的に呼び出されます。このメソッドの構文形式は次のとおりです:
public function __isset($name){
... ... ;
}
パラメータ $name は、アクセスされる属性の名前です。
isset() 関数は、変数が存在し、NULL ではないかどうかをチェックし、変数をパラメータとして渡します。渡された変数が存在する場合は true を返し、そうでない場合は false を返します。
empty() 関数は、変数が空かどうかをチェックできます。また、変数をパラメータとして渡す必要があります。変数が存在しない場合、または変数の値が FALSE に等しい場合、変数は存在しないものとみなされます。
クラス内のパブリック メンバーにはクラスの外部からアクセスできますが、プライベート メンバーにはクラスの外部からアクセスできません。つまり、 isset() または empty() 関数を使用して、クラス内のパブリック プロパティが存在するかどうかを確認できますが、これら 2 つの関数はクラス内のプライベート プロパティに対しては無効です。
isset() または empty() 関数を使用してクラス内のプライベート プロパティを検出したい場合は、 __isset() メソッドをクラスに追加するだけで済みます。 ) または empty() 関数を使用すると、クラス内の __isset() メソッドが自動的に呼び出されます。
4. __unset() メソッド
アクセスできない属性またはクラス内に存在しない属性に対してクラス外で unset() 関数が使用される場合、__unset() メソッドは次のようになります。このメソッドの構文形式は次のとおりです:
public function __unset($name){
... ... ;
}
パラメータ $name は、アクセスする属性の名前です。
まず、unset() 関数を見てみましょう。unset() 関数の機能は、指定された変数を削除することです。1 つ以上の変数をパラメータとして渡す必要があります。また、関数戻り値はありません。
同様に、unset() 関数を使用して、クラス内のメンバー属性をクラス外で削除することもできます。上で紹介した __isset() メソッドと同様に、クラス内のパブリック属性を削除したい場合は、 unset() 関数を直接使用できますが、クラス内のプライベート属性を削除したい場合は、 __unset 関数を追加する必要があります。 () をクラス.メソッドに追加します。
5. __call() メソッド
クラス内にアクセスできないメソッドまたは存在しないメソッドを呼び出す場合、__call() メソッドが呼び出されます。このメソッドの構文形式は次のとおりです。
public function __call($name, $arguments){
... ... ;
}
$name は呼び出されるメソッドの名前で、$arguments は $name に渡されるパラメータの配列です。
呼び出されたメソッドが存在しない場合、__call() メソッドが自動的に呼び出され、プログラムの実行が継続されるため、呼び出しメソッドが存在しない場合のエラーによるプログラムの終了が回避されます。
6. __clone() メソッド
clone キーワードを使用してオブジェクトをコピーできます。コピーが完了すると、__clone() メソッドが定義されている場合、新しく作成されたオブジェクト (オブジェクトをコピーして生成される) を実行すると、__clone() メソッドが自動的に呼び出され、これを通じて必要な操作を実行できます。 __clone() メソッドの構文形式は次のとおりです。
public function __clone(){
... ... ;
}
この関数にはパラメーターを渡す必要はありません。
推奨学習: 「PHP ビデオ チュートリアル 」