ホームページ  >  記事  >  バックエンド開発  >  クラス内のコンストラクターとデストラクターを区別できるようにする

クラス内のコンストラクターとデストラクターを区別できるようにする

WBOY
WBOYオリジナル
2021-10-25 10:33:353122ブラウズ

前回の記事では、「PHP でオブジェクトをインスタンス化し、オブジェクト メンバーにアクセスする方法は?」についてお届けしました。 」では、オブジェクトをインスタンス化し、オブジェクトのメンバーにアクセスする方法について詳しく紹介しています。この記事では、PHP のコンストラクターとデストラクターについて説明します。皆さんの参考になれば幸いです。

クラス内のコンストラクターとデストラクターを区別できるようにする

PHP クラスのコンストラクターは、コンストラクターとも呼ばれます。new キーワードを使用してオブジェクトがインスタンス化されると、オブジェクトの作成時に自動的に呼び出すことができます。特別な機能です。対応する関数はデストラクターです。デストラクターの役割はコンストラクターの正反対です。デストラクターはオブジェクトが破棄される前に操作を実行できます。次に、これら 2 つの関数を一緒に見てみましょう。

<strong><span style="font-size: 20px;"></span>construct()</strong>:コンストラクター/メソッド

PHP クラスでは、クラスのコンストラクターとして __construct()
を使用します。コンストラクターは、オブジェクトの作成時にクラス内で自動的に呼び出される最初の関数であり、クラス内にのみ存在できます。コンストラクターにパラメーターがある場合は、インスタンス化のために対応するパラメーターも渡す必要があることに注意してください。

コンストラクターによって作成される構文形式は次のとおりです。

public function __construct(参数列表){
    ... ...
}
パラメーター リストはオプションであり、必要ない場合は省略できることに注意してください。構文の前には 2 つのアンダースコア __

が付きます。

例は次のとおりです。

<?php
    class study{
        public $study1, $study2, $study3,$study4;
        public function __construct($str1, $str2, $str3,$str4){
            $this -> study1 = $str1;
            $this -> study2 = $str2;
            $this -> study3 = $str3;
            $this -> study4 = $str4;
            $this -> demo();
        }
        public function demo(){
            echo $this -> study1.&#39;<br>&#39;;
            echo $this -> study2.&#39;<br>&#39;;
            echo $this -> study3.&#39;<br>&#39;;
            echo $this -> study4.&#39;<br>&#39;;
        }
    }
    $object = new study(&#39;好好学习&#39;,&#39;天天向上&#39;,&#39;福如东海&#39;,&#39;寿比南山&#39;);
?>

$この例の this は、現在呼び出されているオブジェクトを表します。出力結果:

クラス内のコンストラクターとデストラクターを区別できるようにする

上記の結果から、クラス内に作成されたオブジェクトを呼び出すために __construct()

コンストラクターを渡します。

<strong><span style="font-size: 20px;"></span>#destruct()</strong>: デストラクター/メソッド

Just前述の__construct()
コンストラクター関数はオブジェクトの作成時に呼び出されます。対応する関数はデストラクターです。デストラクター関数はコンストラクター関数の反対です。デストラクター関数は、オブジェクトが作成されたときにのみ自動的に呼び出されます。オブジェクトがメモリから削除されます。PHP にはガベージ コレクション メカニズムがあります。オブジェクトにアクセスできない場合、ガベージ コレクション メカニズムが自動的に開始されます。デストラクタは、ガベージ コレクション オブジェクトの前に呼び出されます。

__destruct()

関数の構文形式は次のとおりです:

public function __destruct(){
    ... ...
}
コンストラクターと同様に、destruct も前に置かれることに注意してください。 2 つのアンダースコアで区切ります。 __
;違いは、デストラクターがパラメーターを受け取ることができないことです。

例は次のとおりです:

<?php
    class Website{
        public $study1, $study2;
        public function __construct(){
            echo &#39;构造函数被调用了<br>&#39;;
        }
        public function __destruct(){
            echo &#39;析构函数被调用了<br>&#39;;
        }
    }
    $object = new Website();
    echo &#39;好好学习<br>&#39;;
    echo &#39;天天向上<br>&#39;;
?>

出力結果:

クラス内のコンストラクターとデストラクターを区別できるようにする

上記からわかります。たとえば、コンストラクターとデストラクターは異なるタイミングで呼び出されます。コンストラクターはオブジェクトの作成時に自動的に呼び出され、デストラクターはオブジェクトがガベージ コレクターによって収集される前に呼び出されます。

<strong><span style="font-size: 20px;"></span>$this</strong>:現在のオブジェクト

は次のとおりです。 PHP オブジェクト プログラミングでは、オブジェクトが作成された後、オブジェクトの各メンバー メソッドに特別なオブジェクト参照「$this」が存在し、コネクタ -># で接続されます。 ## 特にオブジェクトの内部メンバー間のアクセスを完了するために共同で使用されます。例は次のとおりです:

$this -> 成员属性;
$this -> 成员方法(参数列表);

クラス内のメンバー属性にアクセスするときは、属性名に従うだけです。$ 記号を追加する必要はありません。$this はオブジェクト内でのみ使用できます。オブジェクトがなければ、$this は存在しません。

例は次のとおりです:

<?php
    class Website{
        public $name;
        public function __construct($name){
            $this -> name = $name;
            $this -> name();
        }
        public function name(){
            echo $this -> name;
        }
    }
    $object = new Website(&#39;好好学习&#39;);
?>

出力結果:

クラス内のコンストラクターとデストラクターを区別できるようにする

興味がある場合は、「#」をクリックしてください。 ##PHP ビデオ チュートリアル>>PHP の知識についてさらに学びましょう。

以上がクラス内のコンストラクターとデストラクターを区別できるようにするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。