为什么我会收到“意外的t_public”错误?

时间:2012-02-27 00:04:25

标签: php php-parse-error

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;
    }
}

我收到错误:解析错误:语法错误,第34行/Applications/XAMPP/xamppfiles/htdocs/acltut/assets/php/class.acl.php中的意外T_PUBLIC。在这种情况下,第34行将是第3行,其中显示“public $ query”。

不应该给变量赋予“可见性”或“权限”,如var / public / private / protected / etc.

如果是这样的话,下一行不一定要写成:

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

我很困惑你何时必须包含public / private / protected并使用$ this->引用变量?当你可以创建一个变量。

2 个答案:

答案 0 :(得分:6)

Public,protected和private为类函数(方法)和成员变量提供范围解析。你必须做类似的事情:

class User
{
    public $query;

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

答案 1 :(得分:2)

public之前移除$query。它不属于那里。