我正在使用php中的nusoap库编写一个简单的Web服务方法。 我已经在服务器端创建了一个complextype(struct),但我想在方法中实例化该结构,以便我可以返回它。我在here中看到了一个示例,但使用了关键字" new "不起作用。它没有看到ComplexType。 那么如何在LoginTest函数中创建新的ComplexLogin结构?
//ComplexLoginType
$server->wsdl->addComplexType('ComplexLogin','complexType','struct','all','',
array(
'EnterpriseId' => array('name' => 'EnterpriseId','type' => 'xsd:int'),
'FirstName' => array('name' => 'FirstName','type' => 'xsd:string'),
'Password' => array('name' => 'Password','type' => 'xsd:string'))
);
$server->register(
// method name:
'LoginTest',
// parameter list:
array('name'=>'tns:ComplexLogin'),
// return value(s):
array('return'=>'tns:ComplexLogin'),
// namespace:
$namespace,
// soapaction: (use default)
false,
// style: rpc or document
'rpc',
// use: encoded or literal
'encoded',
// description: documentation for the method
'Login Method'
);
答案 0 :(得分:0)
我不能直接实例化ComplexType,但如果我使用数组,它可以正常工作。 但是我想知道是否有另一种方法可以在不使用数组的情况下返回ComplexType?
我在服务器端的完整工作功能;
function LoginTest($mycomplexlogin)
{
$conn=openConnection();
// Check connection
if ($conn->connect_error)
{
//return("Connection failed: " . $conn->connect_error);
return NULL;
}
$EnterpriseId=mysqli_real_escape_string($conn,$mycomplexlogin["EnterpriseId"]);
$FirstName=mysqli_real_escape_string($conn,$mycomplexlogin["FirstName"]);
$Password=mysqli_real_escape_string($conn,$mycomplexlogin["Password"]);
$result=array('EnterpriseId'=>$EnterpriseId, 'FirstName'=>$FirstName,'Password'=>$Password);
return $result;
}