大家好,我正在尝试使用PHP SoapClient
来使用WebService。
现在,一切正常,直到我尝试使用ComplexType变量。
我从网络服务中获得NullPointerException
。
以下是ComplexType变量的类:
class A {
public $var1 = 0; //int
public $var2; //Object: B
}
现在,我正在制作一个这样的对象:
$a = new A();
$a->var2 = new B();
但是,每次我制作A的对象时都必须这样做。
有没有一种方法可以在$var2
中初始化class A
,而不使用构造函数,就像我们为$var1
做的那样?
答案 0 :(得分: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