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'

私の質問は、戻り値を public $db_fields に設定する方法です。したがって、public $db_fields は "public $db_fields = array('id','firstname','lastname')" になります。

これまでに試したこと

1.)

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

エラー: 解析エラー: 構文エラー、33 行目の C:\Program Files\xampp\htdocs\ieti\includes\student.php の予期しない T_VARIABLE

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

エラー: 解析エラー: 構文エラー、33 行目の C:\Program Files\xampp\htdocs\ieti\includes\student.php の予期しない T_VARIABLE

4

2 に答える 2

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
于 2012-10-29T06:26:55.220 に答える
0
public $db_fields = array($this->get_db_fields());

ここで「配列」を使用するのは正しくありません。

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

そして2つ目は、クラスにはこのためのコンストラクターがあります...

それで

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

さらに、オブジェクト指向を既に使用している場合は、mysql_query の使用はお勧めしませ

于 2012-10-29T06:33:20.443 に答える