コンストラクタ

コンストラクタは、newによりクラスの新しいインス タンスを作成する際に自動的にコールされるクラス関数です。 ある関数が、クラス名と同じ名前を有している場合にコンストラクタに なります。コンストラクタが存在しない場合、もし基底クラスの コンストラクタが存在すれば、それがコールされます。

<?php
// PHP 3 および PHP 4で動作します
class Auto_Cart extends Cart
{
    function
Auto_Cart()
    {
        
$this->add_item ("10", 1);
    }
}
?>

この例は、Cart にコンストラクタを加えたクラス Auto_Cart を定義しています。 このコンストラクタは、"new" により新しい Auto_Cart が作成される度に 籠に10番の物を一つ保持するように初期化します。コンストラクタは、オ プションとして引数をとります。これにより、コンストラクタは非常に便 利なものとなります。このクラスをパラメータが指定されない場合でも使 用できるようにするには、コンストラクタに指定する全てのパラメータに デフォルト値を指定してください。

<?php
class Constructor_Cart extends Cart
{
    function
Constructor_Cart($item = "10", $num = 1)
    {
        
$this->add_item ($item, $num);
    }
}

// しつこいが、前の例と同じものを買う
$default_cart = new Constructor_Cart;

// 実際に買うものをカゴに入れる...
$different_cart = new Constructor_Cart("20", 17);
?>

@newのようにコンストラクタで発生するエラーの 出力を抑制するために@演算子を使用することが 可能です。例:@new

<?php
class A
{
    function
A()
    {
        echo
"Aのコンストラクタです<br>\n";
    }

    function
B()
    {
        echo
"クラスAのBという名前の通常の関数<br>\n";
        echo
"Aのコンストラクタではありません<br>\n";
    }
}

class
B extends A
{
}

// これにより、B() がコンストラクタとしてコールされます。
$b = new B;
?>

クラスAの関数 B() は、意図されていない場合でも突然クラスB の コンストラクタになってしまいました。PHP 4 は、この関数が クラスBで定義されているかとかその関数が継承されているかどうかは 考慮しません。

注意

PHP 4 では派生クラスのコンストラクタから基底クラスの コンストラクタを自動的にコールすることはできません。 上流のコンストラクタを適切にコールするように伝播させることは あなたの責任でやるべきことです。

デストラクタは、unset()またはスコープから でることにより、オブジェクトが破棄される度に自動的にコールされる関数です。 PHPにはデストラクタはありません。デストラクタの機能の多くを シミュレーションするには、代わりに register_shutdown_function() を使用します。



東京デリヘル 池袋デリヘル 新宿デリヘル 渋谷デリヘル 品川デリヘル

鶯谷デリヘル 大塚デリヘル 立川デリヘル 町田デリヘル 横浜デリヘル 埼玉デリヘル

千葉デリヘル 大阪デリヘル 神戸デリヘル 京都デリヘル 名古屋デリヘル デリヘル

アダルトレンタルサーバー アダルトレンタルサーバー 表札 断熱塗料 UGUISU

大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム 老人ホーム