2019年7月23日PHPのマジックメソッド

本論文では、PHPの魔法の方法のいくつかは魔法のメソッドは、名前が示唆していまとめるには、メソッド(関数)素晴らしい機能です。魔法の方法は、通常、特定の状況下で自動的にトリガされ、変数名をインスタンス化することはできません - >メソッド名()アクティブトリガします。異なる方法が異なるトリガの魔法を持って、アンダースコアではなく、エラーで書かれている場合、魔法の方法は、「__」2は、アンダースコアで始まり、「2つのアンダースコア」に注意を払う必要がありますされているが、それはトリガされません。

1.構築の方法__construct(パラメータ){}

魔法のメソッドは、クラスがインスタンス化されるときに自動的にトリガされ、アクティブでないトリガーされます。一般的に、いくつかの初期化タスクを実行するために使用され、我々は以下の初期値コンストラクタを割り当てます。

クラス人{
     VARの $名;
    VaRの $の年齢;
    VaRの $のセックス;
    // 构造方法の
    関数 __construct($名$年齢$性別
    { 
        // 赋值
        $この - >名前= $名;
        $この - >年齢= $年齢;
        $この - >セックス= $セックス
    } 

    関数は、()と言う
    { 
        エコー「私の名前はあります」。$これは - 。>名前"私は"。$この。 - >年齢"古い年。"。$この - >セックス"セックスで.." ; 
    } 
} 

// パラメータは、コンストラクタを通過したがインスタンス化するときに実行される
OBJ $を = 新しい新しい人( "zhangsan"、 "20があります"、 "MALE" ); 

// そして、言って呼び出し()メソッドの
$ OBJ - >)が(と言います。

最終的な出力は次のようになります。私の名前は私がセックスで20年old.maleだZhangSan ..です

上記の例から分かるように、アクティブトリガコンストラクタクラスがインスタンス化されるとき、パラメータが渡されることができます。

これは、次のような状況のコンストラクタに収まります。

①データベースクラス

データベースを使用する前に、まずデータベースに接続する必要があります。私たちはできる连接数据库内部コンストラクタ内のコード。

②ページングクラス

各計算ページの前に、あなたが取得する必要があり当前页数、计算总页数、あなたは、コンストラクタに配置することができます。

③アップロードクラス

あなたはファイルをアップロードするために取得する必要があり  $file = $_FILES['form_name']、それは、コンストラクタに配置することができます。

④描画クラス

あなたはまず、コンストラクタを置くことができるプロセスを描画ボードを作成する必要があります。

 

2.デストラクタ__destruct(){}

デストラクタは、そのようなファイルを閉じるように、いくつかの動作は完全なクラスの破壊または機能の番号の前に行うことができ、 放出の結果セット、等のオブジェクトが表示されている場合、デストラクタは、オブジェクトへのすべての参照が削除または破壊されるであろうオブジェクトがメモリ内で破壊される前に実行は、つまり、デストラクタが呼び出されます。同様に、コンストラクタの名前、 デストラクタ名はクラスでなければならない)(__destruct。デストラクタは、任意のパラメータを持つことができません

ここでは、特定のアプリケーションのデストラクタを見て:

クラスの学生{ 

    関数は、()と言う
    { 
        エコー "I AM A学生を。" ; 
    } 
    // デストラクタ
    関数__destruct()
    { 
        エコー "ハッピー私はSO AM。" ; 
    } 
} 

// クラスのインスタンス
の$ obj_s = 新しい新しい学生を( );
 // 言う呼び出し()メソッド
$ obj_s - >と言います();

最終的な出力は次のようになります。私は、私はとても幸せです学生です..

我々はデストラクタメソッドを呼び出すためのイニシアチブを取ることはありません、見ることができ、その結果は、出力デストラクタ方法です。メモリは自動的に呼び出し元のクラスメソッドの後にリリースされているので。メモリを解放する前に、イニシアチブは、デストラクタを引き起こしました。

おすすめ

転載: www.cnblogs.com/zhangxu-fasu/p/11230535.html