Подтвердить что ты не робот

Вызов метода из другого метода в том же классе PHP

Я пытаюсь использовать метод из другого метода в классе. У меня нет большого опыта работы с PHP5 OOP, и я искал ответы, но не смог найти. Я пытаюсь использовать getClientInfo() в sendRequest(), который находится в том же классе.

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);
    }
}

И он говорит мне:

Неустранимая ошибка: вызов undefinedфункция getClientInfo()

Я также пробовал

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

и

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

безрезультатно.

Любые идеи?

4b9b3361

Ответ 1

Это статический метод, поэтому вы должны называть его self::getClientInfo или DomainHandler::getClientInfo.

Также: Возможно, вы захотите ознакомиться с объектно-ориентированным программированием, так как похоже, что вы еще не поняли, что это на самом деле (это не просто установка функций между классом Foo {и} и старение публичного статизма перед ними)

Ответ 2

Вы объявляете функции static и, следовательно, они не находятся в контексте объекта – вы можете вызвать их с помощью DomainHandler::getClientInfo() или self::getClientInfo().

Если вам явно не нужны статические функции, вы можете отказаться от ключевого слова static, а затем $this->getClientInfo() будет работать.

Ответ 3

'self' - ключевое слово, которое вы ищете

который сказал, вы можете объяснить, почему вам нужно, чтобы ваши методы были статическими? "Статический" - это плохой стиль, и его следует избегать.