简体   繁体   English

如何在服务器端使用php实例化Nusoap的ComplexType?

[英]How to instantiate Nusoap's ComplexType using php in server side?

I am writing a simple web service methods using nusoap library in php. 我正在使用nusoap库编写一个简单的Web服务方法。 I already create a complextype (struct) in server side but I want to instantiate that struct in a method so I can return it. 我已经在服务器端创建了一个复杂类型(结构),但是我想在一个方法中实例化该结构,以便返回它。 I saw an example in here but using keyword " new " doesn't work. 我在这里看到了一个示例,但是使用关键字“ new ”不起作用。 It doesn't see ComplexType. 它没有看到ComplexType。 So how can I create new ComplexLogin struct in my LoginTest function? 那么,如何在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'
 );

I cannot instantiate ComplexType directly but if I use array instead, it works correctly. 我无法直接实例化ComplexType,但是如果我改用数组,它可以正常工作。 However I wonder if there is another way to return ComplexType without using arrays? 但是我想知道是否还有另一种不使用数组就返回ComplexType的方法?

My complete working function in server side; 我在服务器端的完整工作功能;

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM