あるPHPの入門書には以下のように解説があります。
*デストラクタ
コンストラクタとは反対に、オブジェクトが破棄されるタイミングで実行されるのがデストラクタです。名前は __destructに固定されている。
デストラクタには、クラスの中で使用したリソースを破棄するなど、主に終了するときの処理を記述するのが一般的です。
以下のようにPHPコードを記述すると…
このように表示されます。
最初にインスタンス$practiceを作成するとコンストラクタ(__construct)ですぐに
鈴木さんは男性です
と出力されるのはわかりますが、直後にデストラクタ(__destruct)によってこのオブジェクトは
破棄され
破棄されました
と出ないのでしょうか?
理屈だと
鈴木さんは男性です
破棄されました
岡本さんは女性です
破棄されました
と出ると思っていました。
インスタンスを作成するとすぐにコンストラクタが呼ばれ、終了するとデストラクタが呼ばれると
いう順番にはならないのでしょうか?
初学者でデストラクタ(__destruct)がよく理解できません。
どなたか、入門者にもわかるように解説していただけないでしょうか。
よろしくお願いいたします。
鈴木さんは男性です 岡本さんは女性です 破棄されました 破棄されました
<?php class MySample{ public $name; public $gender; public function __construct($name, $gender){ $this->name = $name; $this->gender = $gender; print "<p>{$name}さんは{$gender}です</p>"; } public function __destruct(){ print "<p>破棄されました</p>"; } } $practice = new MySample("鈴木","男性"); $practice2 = new MySample("岡本","女性"); ?>
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。