如何从 PHP 中的 SOAP WebService 的 WSDL 创建对象?

How to create an object from the WSDL of a SOAP WebService in PHP?

我正在尝试使用 PHP 调用网络服务。它工作正常,但我有一个函数,它抛出一个 NullReferenceException。函数参数是Webservice的classes,定义在WSDL文件中。在 C# 中,我可以创建这些 classes 的实例,然后我可以使用该方法传递它们。这按预期工作,但在 PHP 中,我无法像在 C# 中那样创建 class 的这些实例。

我尝试从 WSDL 创建 class 的实例:

$myinstance1 = new SoapVar($content, SOAP_ENC_OBJECT, "Class1Name", $url_WSDL);
$myinstance2 = new SoapVar($content, SOAP_ENC_OBJECT, "Class2Name", $url_WSDL);

然后我尝试使用这些参数调用该方法:

$result = $soapclient->GetMyObjects($myinstance1, $myinstance2);

我想一个问题是,classes 之一是枚举类型。另一个class是一种整型数组。当我尝试使用这些参数调用我的函数时,我仍然收到 NullReferenceException 错误。

我认为问题出在枚举类型上,它没有正确转换。 我实例化正确了吗? 有谁知道如何解决这个问题?

我通过从 WSDL 文件生成 php classes 解决了这个问题。 为此,我使用了工具 wsdl2phpgenerator.
在我将值作为 class 个对象传递后,它起作用了。