初始化类中的 ComplexType 变量 (SoapClient)

发布于 2024-10-05 14:57:51 字数 485 浏览 8 评论 0原文

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

下面是一个 ComplexType 变量的类示例:

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

现在,我正在创建一个如下所示的对象:

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

但是,每次创建 A 的对象时都必须执行此操作。 是否有一种方法可以在 class A 中初始化 $var2,而无需使用它的构造函数,就像我们对 $var1 所做的那样?

Hey everyone, I am trying to consume a WebService using PHP SoapClient.
Now, everything is working fine until I try to use a ComplexType variable.
I am getting a NullPointerException from the web service.

Here is an example ComplexType variable's class:

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

Now, I am making an object like this:

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

But, this has to be done every time I make an object of A.
Is there a method to initialize $var2 in class A, without using the constructors for it, like we are doing for $var1?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶…霜飞 2024-10-12 14:57:52

是的,如果使用 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

Yes, is possible if using 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 );

Is called using $a->var2 instead of $a->$var2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文