魔法のメソッド __construct() および __destruct() の使用法は何ですか。それらは常に必要ですか?
これに対する簡単な答えが必要です。少し混乱します。
それらは必須ではありません。構築は、初期化時、つまりオブジェクトが作成/構築されるときに呼び出されます。クリーンアップ時に破棄が呼び出されます。
例:
class Foo
{
function __construct()
{
echo "start";
}
function __destruct()
{
echo "end";
}
}
$foo = new Foo(); // outputs start
echo ' : ';
unset( $foo ); // outputs end
echo ' ! ';
上記のスニペット出力start : end !
。unset
クリーンアップ時にスクリプトの最後でデストラクタが呼び出されるのを使用しない場合、出力は次のようになります。start : ! end
リンク
について__construct()
、それはあなたにあなたの新しく作成されたオブジェクトでいくつかのことをする可能性をあなたに与えて、そして__construct()
親クラスのメソッドを上書きする可能性を与えます。
したがって、必須ではない場合もありますが(どちらも必須ではありません)、クラスが別のクラスを拡張する場合、親コンストラクターの自動呼び出しを回避するために、たとえばコンストラクターを追加する必要がある場合があります。
コンストラクトの最も一般的な用途は、クラス変数をデフォルト値に初期化することです。ただし、destruct を使用する必要はまだありません。