0

みなさん、PHPを使用してWebサービスを利用しようとしていますSoapClient。これで、ComplexType変数を使用しようとするまで、すべてが正常に機能しています。NullPointerExceptionWebサービスからを取得しています。

ComplexType変数のクラスの例を次に示します。

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

今、私はこのようなオブジェクトを作成しています:

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

しかし、これはAのオブジェクトを作成するたびに実行する必要があります。コンストラクターを使用せず$var2にで初期化するメソッドはありますか?class A$var1

4

1 に答える 1

1

はい、PHPオーバーロードを使用している場合は可能です

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

于 2010-12-04T15:41:19.567 に答える