Почему я получаю "неожиданную ошибку t_public"?

public function getUserRoles()
{
    public $query = "SELECT * FROM user_roles WHERE userID = ".floatval($this->userID)."ORDER BY addDate ASC";
    if ($query_run = mysql_query($query))
    {
        public $resp = array();
        while ($query_row = mysql_fetch_array($query_run))
        {
            $roleID = $query_row['roleID'];
        }
        return $resp;
    }
}

Я получаю сообщение об ошибке: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_PUBLIC в /Applications/XAMPP/xamppfiles/htdocs/acltut/assets/php/class.acl.php в строке 34.Line 34 в этом случае будет третьей строкой, где он говорит "public $query".

Разве переменным нельзя давать "видимость" или "разрешения", такие как var / public / private / protected / и т. Д.?

и если это так, не будет ли следующая строка записана как:

if (public $query_run = mysql_query($this->query)) {}

Я запутался, когда вам нужно включить public / private / protected и ссылаться на переменную с помощью $this->, и когда вы можете просто создать переменную.

2 ответа

Решение

Открытые, защищенные и частные обеспечивают разрешение области видимости для функций класса (методов) и переменных-членов. Вы должны сделать что-то вроде:

class User
{
    public $query;

    public function getUserRoles()
    {
        $this->query = "SELECT * FROM user_roles WHERE userID = ".floatval($this->userID)."ORDER BY addDate ASC";
    }
 }

Удалить public до $query, Это не принадлежит там.

Другие вопросы по тегам