我正在尝试在类中的另一个方法中使用方法。我没有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);
无济于事。
有什么想法吗?
答案 0 :(得分:42)
这是一种静态方法,因此您必须使用self::getClientInfo
或DomainHandler::getClientInfo
来调用它。
另外:你可能想要阅读面向对象的编程,因为它看起来你还没有理解它的真正含义(它不仅仅是在一个类Foo {和}之间放置函数并将public static放在它们前面)
答案 1 :(得分:18)
您将函数声明为static,因此它们不在对象上下文中 - 您可以使用DomainHandler::getClientInfo()
或self::getClientInfo()
来调用它们。
如果您没有明确要求这些函数是静态的,则可以删除static
关键字,然后$this->getClientInfo()
将起作用。
答案 2 :(得分:3)
'self'是您正在寻找的关键字
那说,你能解释为什么你需要你的方法是静态的吗? “静态”是不好的风格,应该避免。