2009-09-03 15 views
3

PHPでクラスを構築しましたが、クラス変数をオブジェクトとして宣言する必要があります。毎回私が使っ空のオブジェクトを宣言します:PHPオブジェクトクラス変数

$var=new stdClass; 

をしかし、私は

class foo 
{ 
    var $bar=new stdClass; 
} 

としてクラス変数を宣言するためにそれを使用する場合、解析エラーが発生します。これを行う方法はありますか、またはクラス変数をコンストラクタ関数のオブジェクトとして宣言する必要がありますか?

PS:私は、あなたが唯一のクラスのメンバーのために、このよう静的な値を宣言することができるように、すなわちintsstringsboolsarraysとを

答えて

5

PHP 4を使用しています。関数の呼び出しやオブジェクトの作成など、あらゆる種類の処理を含む何もできません。

あなたはコンストラクタでそれを行う必要があります。

Relevant manual section:PHP 4では

は、変数varのための唯一の定数初期化子が許可されています。定数でない変数を初期化するには、クラスからオブジェクトを構築するときに自動的に呼び出される初期化関数が必要です。そのような関数はコンストラクタと呼ばれます(下記参照)。

2

ここにオブジェクトを作成しないでください。あなたがより良い方法ではセッターを書いて、

<?php 
    class foo 
    { 
     var $bar = null; 

     function foo($object = null) 
     { 
      $this->setBar($object); 
     } 

     function setBar($object = null) 
     { 
      if (null === $object) 
      { 
      $this->bar = new stdClass(); 
      return $this; 
      } 

      $this->bar = $object; 
      return $this; 
     } 
    } 

をゲッタリングする必要があり

、あなたはより柔軟性があるOOP、で動作するようにPHP5を使用する必要があります...