2012-02-27 47 views
0
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.線34在這種情況下會是第三行,它說「公共$查詢」。爲什麼我會收到「意外的t_public」錯誤?

不宜變量被賦予「可見性」或「權限」像VAR /公共/私有/保護/等?

,如果是這樣的話,豈不是下一行必須寫成:

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

我時,你必須包括公共/私人困惑/保護,指的是變量, $ this->以及何時可以創建一個變量。

+0

你仔細閱讀了http://www.php.net/manual/en/language.oop5.visibility.php嗎? public/private/protected應在方法或財產聲明中使用 – Slawek 2012-02-27 00:07:09

+0

已解決。感謝Mike Purcell。 – pancakeplease 2012-02-27 00:13:40

+0

哦,不知道。剛剛做到了。 – pancakeplease 2012-02-27 00:23:29

回答

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"; 
    } 
} 
+0

謝謝!我很困惑。所以你只定義公共/私有的類的屬性,而不是在方法內部。得到它了。 – pancakeplease 2012-02-27 00:13:12

+0

對。很明顯,你可以引用方法內的成員(只要範圍允許它;繼承,自我等)。 – 2012-02-27 00:15:38

2

$query前取出public。它不屬於那裏。

相關問題