Вызов метода из другого метода в том же классе 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);
безрезультатно.
Любые идеи?
Ответы
Ответ 1
Это статический метод, поэтому вы должны называть его self::getClientInfo
или DomainHandler::getClientInfo
.
Также: Возможно, вы захотите ознакомиться с объектно-ориентированным программированием, так как похоже, что вы еще не поняли, что это на самом деле (это не просто установка функций между классом Foo {и} и старение публичного статизма перед ними)
Ответ 2
Вы объявляете функции static и, следовательно, они не находятся в контексте объекта – вы можете вызвать их с помощью DomainHandler::getClientInfo()
или self::getClientInfo()
.
Если вам явно не нужны статические функции, вы можете отказаться от ключевого слова static
, а затем $this->getClientInfo()
будет работать.
Ответ 3
'self' - ключевое слово, которое вы ищете
который сказал, вы можете объяснить, почему вам нужно, чтобы ваши методы были статическими? "Статический" - это плохой стиль, и его следует избегать.