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

Con*_*ing 36 php oop methods class

我正在尝试使用类中另一个方法中的方法.我没有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);
    }
}
Run Code Online (Sandbox Code Playgroud)

它告诉我:

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

我也试过了

parent::getClientInfo($db, $client); 
Run Code Online (Sandbox Code Playgroud)

$this->getClientInfo($db, $client);
Run Code Online (Sandbox Code Playgroud)

无济于事.

有任何想法吗?

Mor*_*dur 42

这是一种静态方法,所以你必须用self::getClientInfo或调用它DomainHandler::getClientInfo.

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

  • 谢谢!是的我知道我对完整的OOP(PHP5)知之甚少,但不幸的是我的老板不会给我一天的时间来阅读他想要修复的东西.:) Tbh,我真的不知道你为什么在方法之前有静态和公共?但我会到达那里.再次感谢您的帮助. (3认同)

Tat*_*nen 19

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

如果您没有明确需要将这些函数设置为静态,则可以删除该static关键字然后$this->getClientInfo()才能工作.

  • @Natrium,然后他可以先使用我的建议. (5认同)