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

2022-08-30 12:41:24

我正在尝试从类中的另一个方法中使用一个方法。我在 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);
    }
}

它告诉我:

致命错误:调用未定义的函数 getClientInfo()

我也试过

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

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

无济于事。

有什么想法吗?


答案 1

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

另外:你可能想阅读面向对象编程,因为它看起来你还没有理解它到底是什么(它不仅仅是把函数放在一个类Foo {和}之间,把公共静态放在它们面前)


答案 2

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

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


推荐