2010-12-04 9 views
0

皆さん、皆さん、PHP SoapClientを使用してWebServiceを使用しようとしています。 ComplexType変数を使用しようとするまでは、すべて正常に動作しています。 WebサービスからNullPointerExceptionを取得しています。クラス内でComplexType変数を初期化する(SoapClient)

$a = new A(); 
$a->var2 = new B(); 

をしかし、これは私がのオブジェクトを作成するたびに実行する必要があります。私はこのようなオブジェクトを作っています、今

class A { 
public $var1 = 0; //int 
public $var2; //Object: B 
} 

:ここ

は、例えば、複合型変数のクラスですA. $var1のようにコンストラクタを使用せずに class A$var2を初期化する方法はありますか?

答えて

1

PHP overloading

class A 
{ 
    public $var1 = 0; 
    /* note $var2 cannot declare here */ 

    public function __get($name) 
    { 
    switch ($name) 
    { 
     case 'var2': 
     return new B(); 
     break; 
    } 
    } 
} 

class B 
{ 
    public $var3 = 1; 
    public function __construct() 
    { 
    $this->name = 'this is class b'; 
    } 
} 

$a = new A(); 
var_dump($a->var2); 
var_dump($a->var2->var3); 
var_dump($a->var2->name); 

を使用して$a->var2の代わり$a->$var2

+0

を使用して呼び出された場合はい、可能です。そのソリューションに感謝します。すばらしく働きます。また、私のコードでその間違いを指している。:P – Stoic

関連する問題