proudmore
@proudmore

Вызов private-метода из static-метода?

Здравствуйте.
У меня есть два статических метода
public static function get_cities()

	{
		$mysqli = $this->db_connect();
		$request = 'SELECT * FROM cities';
		$result = $mysqli->query($request);
		$array = array();
		$row_counter = 0;
		while ($row = $result->fetch_row())
		{
			$array[$row_counter][0] = $row[0];
			$array[$row_counter][1] = $row[1];
			$row_counter++;
		}
		return $array;
	}
	public static function GetAllUsers()

	{
		$mysqli = $this->db_connect();
		$req = 'SELECT u.id, u.Name, u.age, c.city_name FROM users AS u LEFT JOIN cities AS c ON (c.city_id = u.city_id) ORDER BY u.ID';
		$result = $mysqli->query($req);
		if ($result !== false)
		{
			if ($result->num_rows !== 0)
			{
				return $result;
			}
			else echo 'table users is empty';
		}
		else echo 'something went wrong';
	}

Выдает ошибку Uncaught Error: Using $this when not in object context
Как быть?

UPD. С чем связана ошибка, я понимаю, но не понимаю, как тогда делать?
Проблема в том, что я пробовал вызывать этот метод как static, но PHP мне сказал, что такое есть deprecated.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
DevMan
@DevMan
переписывать: ошибка связана не с тем, что метод приватный, а с тем, что используется $this вне контекста инстанса.
другими словами: $this не может (и не должен) использоваться в статических методах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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