0

大家好,我正在尝试使用 PHP 来使用 WebService SoapClient。现在,一切正常,直到我尝试使用 ComplexType 变量。我NullPointerException从网络服务中得到一个。

这是一个示例 ComplexType 变量的类:

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

现在,我正在制作这样的对象:

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

但是,每次我制作 A 的对象时都必须这样做。是否有一种方法可以$var2class 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 回答