8. コンストラクターとデストラクター ほとんどのクラスには、コンストラクターと呼ばれる特別なメソッドがあります。オブジェクトが作成されると、自動的にコンストラクターが呼び出されます。つまり、オブジェクトのインスタンス化に new キーワードが使用されると、コンストラクターが自動的に呼び出されます。
コンストラクターの宣言は、その名前が __construct() でなければならないことを除いて、他の操作の宣言と同じです。これは PHP5 での変更です。以前のバージョンでは、コンストラクターの名前はクラス名と同じである必要がありました。これは PHP5 でも使用できますが、これを使用できるという利点があります。コンストラクタはクラス名に依存しません。クラス名が変更された場合でも、対応するコンストラクタ名を変更する必要はありません。下位互換性のために、クラスに __construct() という名前のメソッドがない場合、
PHP はクラス名と同じ名前で php4 で書かれたコンストラクター メソッドを検索します。
形式: function __construct ([parameter]) { ... ... }
クラス内で宣言できるコンストラクターは 1 つだけですが、コンストラクターはオブジェクトが作成されるたびに 1 回だけ呼び出されます。このメソッドを呼び出すことはできません。アクティブに動作するため、通常はいくつかの便利な初期化タスクを実行するために使用されます。たとえば、ペアになっているプロパティの場合、オブジェクトの作成時に初期値が割り当てられます。
コードスニペット
コードをコピー
コードは次のとおりです:
//人間を作成します class person{ //以下は人物のメンバー属性です var $name; //人の名前
var $sex; //人の性別
var $age; //人の年齢
//コンストラクターメソッドのパラメータを名前$name、性別$sex、年齢$ageとして定義します
function __construct($ name, $sex, $ age){
//コンストラクターを通じて渡された $name には、メンバー属性 $this->name
$this->name=$name
//コンストラクターを通じて渡された $sex には、メンバー属性 $this->sex が割り当てられます
$this->sex=$sex
//構築メソッドを通じて渡された $age には、メンバー属性の初期値 $this->age
$this ->age=$age;
}
//この人の話し方
function Say(){
echo "私の名前は: ".$this- >name." 性別: ".$this->sex." 私の年齢: ".$this->age."
"
}
}
// 3 つのオブジェクト $p1 を作成します。 p2、$p3 を構築メソッドを通してそれぞれ渡します。 3 つの異なる実際のパラメータは、名前、性別、年齢です
$p1=new person("张三","男性", 20); ("李思","男", 30);
$p3=new person("王五","男", 40); 以下は、$p1 オブジェクトの発話メソッドにアクセスします
$p1- >say();
//以下は $p2 オブジェクトの発話メソッドにアクセスします
$p2->say(); 以下は $p3 オブジェクトの発話メソッドにアクセスします
$p3 ->say();
?>
私の名前: Zhang San 性別: 男性 私の年齢: 20
私の名前: Li Si 性別: 女性 私の年齢: 30私の名前:王呉 性別:男性 年齢:40歳
写真の通り:
=700) window.open('/upload/20090930220209825.gif');" src="http://www. bkjia.com/uploads/allimg/131016/0921001394-0.gif" onload="if (this.width>'700')this.width='700';if(this.height>'700')this.height ='700';" border=0>
デストラクター:
とコンストラクター 関数の反対はデストラクターです。デストラクタは、PHP5 で新しく追加された内容です。PHP4 にはデストラクタはありません。デストラクターを使用すると、クラスを破棄する前に、ファイルを閉じる、結果セットを解放するなど、一部の操作を実行したり、一部の機能を完了したりできます。デストラクターは、オブジェクトへのすべての参照が削除されるか、破棄時にオブジェクトが明示的に実行されるときに削除されます。 ,
つまり、オブジェクトがメモリ内で破棄される前に、デストラクターが呼び出されます。コンストラクターの名前と同様に、クラスのデストラクターの名前は __destruct() でなければなりません。デストラクターはパラメータを取ることができません。
形式: function __destruct ( ) { ... ... }
コードスニペット
コードをコピーします
//人間
class を作成します{
//以下は人物のメンバー属性です
var $name //人物の名前
var $sex; person
var $age; / /人の年齢
//名前 $name、性別 $sex、年齢 $age としてコンストラクター メソッドのパラメーターを定義します
function __construct($name, $sex, $age){
//$コンストラクター メソッドを通じて渡された name は、メンバー属性 $this->name に初期値が割り当てられます
$this->name=$name
//構築メソッドを通じて渡された $sex には、初期値が割り当てられますメンバー属性 $this->sex
$this ->sex=$sex;
//コンストラクターを通じて渡された $age には、メンバー属性 $this->age
$this に初期値が割り当てられます->age=$age;
}
//この人の話し方
function Say(){
echo "私の名前は: ".$this->name." 性別: ".$this-> sex." 私の年齢は: ".$this-> ;age."
"
}
//これはオブジェクトが破棄される前に呼び出されるデストラクターです
function __destruct(){
echo "Goodbye"; .$this->name."
}
//構築メソッドを通じて 3 つのオブジェクト $p1、p2、$p3 を作成し、それぞれ名前、性別、年齢の 3 つの異なる実際のパラメーターを渡します
$p1=新しい人("張三", "男性", 20);
$p2=新しい人("李思","女", 30);
$p3=新しい人("王五","男性", 40);
//以下を参照 $p1 オブジェクトの発話メソッド
$p1->say();
//以下は $p2 オブジェクトの発話メソッドにアクセスします
$p2->say ();
//以下は $p3 オブジェクトメソッド
$p3->say();
の出力結果です:
私の名前: Zhang San 性別: 男性私の年齢: 20
私の名前: Li Si 性別: 女性 私の年齢: 30
私の名前: Wang Wu 性別: 男性 私の年齢: 40
さようなら、張三
さようなら、李思
、さようなら、王呉
http://www.bkjia.com/PHPjc/320651.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/320651.html技術記事 8. コンストラクターとデストラクター ほとんどのクラスには、コンストラクターと呼ばれる特別なメソッドがあります。オブジェクトが作成されると、自動的にコンストラクターが呼び出されます。つまり、新しいキーが使用されます...