使用SoapClient的类结构

时间:2013-09-19 10:31:39

标签: php oop object soap-client

这是一个简化的 我知道后面的代码,不是很干净,而是测试

代码1:

<?PHP
abstract class webservice
{
    protected  $url;    
    var $clientSoap;

    public function  affectation_base($url_p)
    {
        ini_set('soap.wsdl_cache_enabled',0);
        ini_set('soap.wsdl_cache_ttl',0);

        $this->url=$url_p;
        $clientSoap = new SoapClient('wdsl_adress');
    }

    public function get_fonction()
    {
        $clientSOAP = new SoapClient('wdsl_adress');
        $sestruct = new stdClass();
        $sestruct->value = "test";
        var_dump($clientSOAP->MD5($sestruct));
    }
    abstract protected function getValue();
}



class Webservice_2 extends webservice
{
  public function __construct($url_p)
  {
   $this->affectation_base($url_p); 
  }
  function getValue()
  {} 
}

$wbs = new Webservice_2('wdsl_adress');  
$wbs->getValue();
$wbs->get_fonction();
?>

代码2:

<?PHP
abstract class webservice
{
    protected  $url;    
    var $clientSoap;

    public function  affectation_base($url_p)
    {
        ini_set('soap.wsdl_cache_enabled',0);
        ini_set('soap.wsdl_cache_ttl',0);

        $this->url=$url_p;
        $clientSoap = new SoapClient('wdsl_adress');
    }

    public function get_fonction()
    {
        $sestruct = new stdClass();
        $sestruct->value = "test";
        var_dump($clientSOAP->MD5($sestruct));
    }
    abstract protected function getValue();
}



class Webservice_2 extends webservice
{
  public function __construct($url_p)
  {
   $this->affectation_base($url_p); 
  }
  function getValue()
  {} 
}

$wbs = new Webservice_2('wdsl_adress');  
$wbs->getValue();
$wbs->get_fonction();
?>

“Code1”有效

“Code2”不起作用:

PHP致命错误:在第20行的E:\ test.php中的非对象上调用成员函数MD5()

第20行是var_dump();

我不明白为什么使用$clientSOAP->MD5是一个问题 什么是正确的解决方案? 提前致谢

Ps:对不起,如果我说英语很好,这不是我的语言

1 个答案:

答案 0 :(得分:1)

数字2的正确代码是:

public function get_fonction()
{
    $sestruct = new stdClass();
    $sestruct->value = "test";
    var_dump($this->clientSOAP->MD5($sestruct));
}

因为$clientSOAP变量未在代码n°1中定义

相关问题