我正在使用从WSDL生成的类代码到PHP中。让我兴奋的是编写类方法的方式,这样简单的数组似乎就成了不存在的类的对象。
特别是这个TFolderArray应该由docs是一个简单的TFolder对象数组:
<xsd:complexType name="TFolderArray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:TFolder[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
TFolderArray的文档将其定义为TFolder结构的数组。但是,如果将这样的数组传递给GetOpportunityList()(见下文),它将抛出
传递给Exchange :: GetOpportunityList()的参数3必须是 TFolderArray的实例,给定的数组
如果您尝试实例化该类的对象,请正确获取Class 'TFolderArray' not found
。
如果你删除$ FolderArray是TFolderArray实例的限制,只是传递一个TFolder对象数组,那么这个功能就是我所期望的。
类渲染软件错误解释了WSDL吗?对于$ FolderArray,类型提示只是'array'吗?或者有没有一种方法可以“输入”数组,尽管没有类存在?这是方法:
public function GetOpportunityList(TLoginInfo $LoginInfo, $AllRecords, TFolderArray $FolderArray) {
return $this->__soapCall('GetOpportunityList', array($LoginInfo, $AllRecords, $FolderArray), array(
'uri' => 'urn:ExchangeService:Exchange33',
'soapaction' => ''
)
);
}