php には多くのマジックメソッドが存在し、これらのメソッドは私たちがトリガーすると自動的に呼び出されます。これらの便利なメソッドは、プログラミングの便利さを大幅に向上させることができます。
__construct ():新しいオブジェクトが作成されるときに自動的にこのメソッドが呼び出され、オブジェクトのメンバ変数を初期化するために使用されます。これはおそらく php で最も一般的に使用されるマジックメソッドであり、ほとんどのオブジェクトはいくつかのデータを初期化する必要があります。
__destruct ():オブジェクトが破棄される前に自動的にこのメソッドが呼び出され、リソースのクリーンアップ(例:データベース接続の自動切断など)に使用されます。
__invoke ():オブジェクトが関数として呼び出されるときに自動的にこのメソッドが呼び出されます。主にクラスの直接呼び出しやクロージャ関数で__invoke () がデフォルトで実装されます。
class Test{
public $name;
function __construct($name){
$this->name = $name;
}
function __invoke(){
return 'Hello '.$this->name;
}
}
$closure = function($name){
return 'Hello '.$name;
};
$test = new Test('Lisi');
echo $test();//Hello Lisi
echo $closure('Lisi'); //Hello Lisi
echo $closure->__invoke('Zhangsan'); //Hello Zhangsan
__get ():存在しないまたはプライベートのプロパティにアクセスするときに自動的にこのメソッドが呼び出されます。
__set ():存在しないまたはプライベートのプロパティを設定するときに自動的にこのメソッドが呼び出されます。
__call ():存在しないまたはプライベートのメソッドを呼び出すときに自動的にこのメソッドが呼び出されます。
__callStatic ():存在しないまたはプライベートの静的メソッドを呼び出すときに自動的にこのメソッドが呼び出されます。
__toString ():オブジェクトを文字列に変換しようとするときに自動的にこのメソッドが呼び出されます。
__clone ():オブジェクトを複製するときに自動的にこのメソッドが呼び出され、オブジェクトのメンバ変数を複製します。
__sleep ():オブジェクトをシリアライズするときに自動的にこのメソッドが呼び出され、インスタンスに含まれるすべての値の名前の配列を返します。
__wakeup ():オブジェクトをデシリアライズするときに自動的にこのメソッドが呼び出され、すべての値を再読み込みします。
__isset ():存在しないまたはプライベートのプロパティが設定されているかどうかを判断するときに自動的にこのメソッドが呼び出されます。
__unset ():存在しないまたはプライベートのプロパティを削除するときに自動的にこのメソッドが呼び出されます。
__set_state ():var_export () 関数でクラスまたはオブジェクトをエクスポートするときに自動的にこのメソッドが呼び出されます。
__debugInfo ():var_dump () 関数を呼び出すときに自動的にこのメソッドが呼び出され、オブジェクトのデバッグ情報を返します。