У меня есть этот метод, в котором я хочу использовать $this, но все, что я получаю: Фатальная ошибка: Используя $this если не в контексте объекта.
Как я могу заставить это работать?
public static function userNameAvailibility()
{
$result = $this->getsomthin();
}
Это правильный способ
public static function userNameAvailibility()
{
$result = self::getsomthin();
}
Используйте self ::
вместо $ this ->
для статических методов .
См .: Учебник по статическим методам PHP для получения дополнительной информации:)
Вы не можете использовать $this
внутри статической функции, потому что статические функции не зависят от любого инстанцированного объекта.
Попробуйте сделать функцию не статической.
Edit:
По определению, статические методы можно вызывать без инстанцированного объекта, поэтому нет смысла использовать $this
внутри статического метода.
Аксессор this
ссылается на текущий экземпляр класса. Поскольку статические методы не запускаются из экземпляра, использование this
запрещено. Поэтому здесь нужно вызывать метод напрямую. Статический метод не может получить доступ ни к чему в области видимости экземпляра, но может получить доступ ко всему в области видимости класса вне области видимости экземпляра.