将函数返回值设置为public / static变量

时间:2012-10-29 06:17:19

标签: php mysql

学生表包含: ID 名字 名字

function 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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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