Nusoap访问$ this inside方法 - 在不在对象上下文中时使用$ this

时间:2016-11-21 22:04:29

标签: php codeigniter nusoap

我有一个nusoap类,在构造函数中定义了一些方法。然而,我遇到的问题是从我加载的模型或构造函数中的同一类中定义的方法调用方法。我得到的错误是“不在对象上下文中时使用$ this”。这些方法都不是静态的,所以我不确定为什么它在访问它时遇到了麻烦。作为参考,这是我正在尝试做的一个例子。

编辑:这是我第一次使用nusoap,并且在我看到的所有示例中都在构造函数中定义了这些方法。如果不需要在构造函数中定义方法,我在哪里定义它们?

class MySoapServer extends CI_Controller {
    function __construct() { 
       parent::__construct();
       //where I'm loading all my models and libraries, 
       //creating a new instance of soap server
       //and registering all my methods


       function myFunction() {
            $this->testFunction() //this is where it errors out
       }
    }

    function testFunction() {
        return true;
    }
}

2 个答案:

答案 0 :(得分:0)

你的功能在另一个功能中,它应该是:

class MySoapServer extends CI_Controller {
    function __construct() { 
       parent::__construct();
       //where I'm loading all my models and libraries, 
       //creating a new instance of soap server
       //and registering all my methods


    }
    function myFunction() {
        $this->testFunction() //this is where it errors out
    }
    function testFunction() {
        return true;
    }
}

你似乎要做的是在构造函数中运行testFunction()?如果是这种情况,那么不需要myFunction(),你只需要在构造函数的末尾添加$ this-> testFunction()。

像这样:

class MySoapServer extends CI_Controller {
        function __construct() { 
           parent::__construct();
           //where I'm loading all my models and libraries, 
           //creating a new instance of soap server
           //and registering all my methods
           $this->testFunction();
        }
        function testFunction() {
            return true;
        }
    }

答案 1 :(得分:0)

我不是nusoap的专家,但PHP不能很好地处理嵌套函数。为什么要在构造函数中声明“myFunction”?尝试从构造函数中删除嵌套函数。此外,您可能想尝试设置函数的访问修饰符。