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

Я пытаюсь использовать метод из другого метода в классе. У меня нет большого опыта в ООП PHP5, и я навел справки об ответах, но не мог найти никого. Я пытаюсь использовать 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);
    }
}

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

Фатальная ошибка: Звоните в неопределенную функцию getClientInfo ()

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

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

и

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

напрасно.

Какие-либо идеи?

36
задан Charles 24 December 2012 в 21:23
поделиться

3 ответа

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

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

42
ответ дан 27 November 2019 в 05:52
поделиться

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

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

3
ответ дан 27 November 2019 в 05:52
поделиться

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

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

19
ответ дан 27 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: