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