从同一PHP类中的另一个方法调用方法

时间:2010-02-08 10:16:21

标签: php oop class methods

我正在尝试在类中的另一个方法中使用方法。我没有PHP5 OOP的经验,我四处寻找答案,但找不到任何答案。我正在尝试在sendRequest()中使用getClientInfo(),它位于同一个类中。

class DomainHandler {

    public static function getClientInfo($db, $client_id)
    {
        //Do stuff
    }

    public static function sendRequest($details)
    {

        require_once('MySQL.class.php');
        $db = new MySQL;

        getClientInfo($db, $client);
    }
}

它告诉我:

  

致命错误:调用未定义   function getClientInfo()

我也试过

parent::getClientInfo($db, $client); 

$this->getClientInfo($db, $client);

无济于事。

有什么想法吗?

3 个答案:

答案 0 :(得分:42)

这是一种静态方法,因此您必须使用self::getClientInfoDomainHandler::getClientInfo来调用它。

另外:你可能想要阅读面向对象的编程,因为它看起来你还没有理解它的真正含义(它不仅仅是在一个类Foo {和}之间放置函数并将public static放在它们前面)

答案 1 :(得分:18)

您将函数声明为static,因此它们不在对象上下文中 - 您可以使用DomainHandler::getClientInfo()self::getClientInfo()来调用它们。

如果您没有明确要求这些函数是静态的,则可以删除static关键字,然后$this->getClientInfo()将起作用。

答案 2 :(得分:3)

'self'是您正在寻找的关键字

那说,你能解释为什么你需要你的方法是静态的吗? “静态”是不好的风格,应该避免。