2012-02-27 11 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; 
    } 
} 

私はエラーを取得しています。エラー解析:この場合にはライン34.Line 34に/Applications/XAMPP/xamppfiles/htdocs/acltut/assets/php/class.acl.phpの構文エラー、予期しないT_PUBLICをだろう3行目は "public $ query"となります。「予期しないt_public」エラーが発生するのはなぜですか?

var/public/private/protected/etcのような "visibility"または "permissions"を変数に与えるべきではありませんか?

及びそのような場合、次の行は、のように記述する必要がないだろう:私はあなたが保護/プライベート/パブリック含めるとで変数を参照する必要があるときに混乱している

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

$ this->変数を作成することができます。

+0

http://www.php.net/manual/en/language.oop5.visibility.phpをよく読んでいましたか? public/private/protectedは、メソッドまたはプロパティの宣言で使用する必要があります。 – Slawek

+0

解決済み。 Mike Purcellに感謝します。 – pancakeplease

+0

ああ、それを知っていませんでした。やったところです。 – pancakeplease

答えて

6

公開、保護、およびプライベートは、クラス関数(メソッド)とメンバー変数のスコープ解決を提供します。

class User 
{ 
    public $query; 

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

ありがとう!私は混乱した。したがって、メソッドの内部ではなく、クラスのプロパティに対してのみpublic/privateを定義します。とった。 – pancakeplease

+0

明らかに、メソッド内のメンバーを参照することができます(スコープが許す限り、継承、自己など)。 –

2

$querypublicを削除します。あなたのような何かをしなければならないでしょう。それはそこに属していません。