2012-10-29 156 views
0

學生表包含: ID 姓名 姓氏設置函數的返回值納入公共/靜態變量

功能get_db_fields得到學生表中的字段。

class Student{ 

public function get_db_fields(){ 
     $sql = "SELECT * FROM students"; 
     $result = mysql_query($sql); 
     if(!$result){ 
     die("Failed :" . mysql_error()); 
     } 
     $db_fields = array(); 
     while($field = mysql_fetch_field($result)){ 
      $db_fields[] = "'".$field->name."'"; 
     } 
     return join(',',$db_fields); 
    } 

    public $db_fields = array($this->get_db_fields()); <--- This is not working 

} 

return join(',',$db_fields) = 'id','firstname','lastname'

我的問題是我怎麼回事設定的返回值進入公衆$ db_fields。 所以公共$ db_fields將是 「公共$ db_fields =陣列( '身份證', '姓名', '姓氏')」

什麼我試過到目前爲止

1)

public $db_fields = array($this->get_db_fields()); <--- This is not working 

錯誤:解析錯誤:語法錯誤,意想不到T_VARIABLE在C:\ Program Files文件\ XAMPP \ htdocs中\ ieti \包括位於線33

2.) $database_fields = $this->get_db_fields(); 

錯誤\ student.php:解析錯誤:語法錯誤,意想不到T_VARIABLE在C:\ Program Files \ xampp \ htdocs \ ieti \ includes 33行上的\ student.php

+0

創建一個構造函數並將返回的值從'get_db_fields'賦值給成員變量'db_fields'。 – air4x

回答

2

創建構造函數並將返回的值從get_db_fields分配給成員變量db_fields。成員變量只能使用在編譯時評估的值進行初始化。

class Student{ 

    public $db_fields; 

    public function __construct() { 
    $this->db_fields = $this->get_db_fields(); 
    } 

// Rest of your code 
+0

賓果! 謝謝air4x! – arjay0601

0
public $db_fields = array($this->get_db_fields()); 

一個使用 '數組' 這裏是不正確的,它應該只是

public $db_fields =$this->get_db_fields(); 

兩個,類有構造函數此...

所以

public function __construct(){ 
$this->db_fields = $this->get_db_fields(); 
} 

此外使用mysql_query現在不鼓勵,如果你正在使用面向對象已經使用PDO