この記事では主にPHPでよく使われるマジックメソッドに関する関連情報を紹介します。非常に良い基準値を持っています。エディターで見てみましょう
PHP では、構築メソッド、デストラクター メソッド、その他のマジック変数などのマジック メソッドをよく使用します。一般的に使用されるいくつかのマジック変数の概要を以下に示します:
__construct()。 __destruct()、__clone()、__autoload()、__tostring()、__invoke()、__set()、__get()、__unset()、__isset()、__call()、__callstatic;
1,__constuct ()Constructor
通常、オブジェクトをインスタンス化した後、オブジェクトのプロパティを初期化する必要があります。オブジェクトをインスタンス化するとき、PHP システムは __construct() という名前のメソッドを自動的に呼び出します。このメソッドを「コンストラクター メソッド」と呼びます。
その中で、コンストラクターはパラメーターを持つことができません。
<?php class Stu { public $stu_name; public $stu_age; //构造方法,实例化时自动调用 public function __construct($name,$age){ $this->stu_name = $name; $this->stu_age = $age; } } //实例化stu对象 $stu = new Stu('孙悟空','500');
2.__destruct() デストラクターメソッド
は、オブジェクトが「誕生」するときにシステムによって自動的に呼び出され、デストラクターメソッドが呼び出されます。オブジェクトが「誕生」したとき、オブジェクトが「消滅」したときにシステムによって自動的に呼び出されます。
デストラクター メソッドの名前は __destruct() です。このメソッドにはパラメーターを含めることはできないことに注意してください。
<?php //析构方法 public function __destruct(){ } ?>
注: デストラクター メソッドは、オブジェクトが破棄される前に呼び出されます。
関数:
デストラクターメソッドは通常、オブジェクト自体を破棄するのではなく、オブジェクトによって占有されている追加のリソースを解放するために使用されます。
3 オブジェクトは依然として Student クラスのインスタンスですか?
instanceof 演算子を使用して判断できます。
instanceof は、オブジェクトが特定のクラスのインスタンスであるかどうかを判断するために使用されます。
2 つのオペランドが必要です。前部はオブジェクト変数、後部はクラス名です。ブール値を返します!
4.__autoload() はクラスを自動的にロードします
存在しないクラスを呼び出すときに自動的に呼び出されます!
//克隆方法在克隆对象的时候对新对象的初始化工作 public function __clone(){ $this->is_clone=true; }
5.__tostring()
オブジェクトが文字列として使用されると自動的に呼び出されますvar_dump($stu instanceof Stu); //返回bool(true)
オブジェクトが関数として使用されると自動的に呼び出されます
7,__set()
アクセスできない属性に値を割り当てるときに自動的に呼び出されます (例: クラス外のプライベート属性を呼び出す)
8.__get()
アクセスできない属性値を取得するときに自動的に呼び出されます。
9.__unset()
アクセスできないプロパティを破棄するときに自動的に呼び出されます
10.__isset()
アクセスできないプロパティが存在するかどうかを判断するときに自動的に呼び出されます
11. __call()
自動的にトリガーされますいつアクセスできない通常のメソッドが呼び出されます
関連する推奨事項: PHP メソッドのオーバーロードを使用して、動的に作成された属性の get および set メソッドを実装する_JavaScript スキル 使用例PHP でスクリプトの実行時間を計算するためのマイクロ秒 以上がPHPでよく使われるマジックメソッドを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<?php
/**
* 自动加载类
* 需要什么类__autoload会自动调用需要的文件
*
*/
public function __autoload($class_name)
{
require_once "../Model/{$class_name}.class.php";
}
?>