【问题标题】:setting function return value into public/static variable将函数返回值设置为公共/静态变量
【发布时间】:2012-10-18 11:28:30
【问题描述】:

学生表包含: 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

【问题讨论】:

  • 创建一个构造函数,并将get_db_fields的返回值赋值给成员变量db_fields

标签: php mysql


【解决方案1】:

创建一个构造函数,并将get_db_fields的返回值赋给成员变量db_fields。成员变量只能使用编译时评估的值进行初始化。

class Student{

  public $db_fields;

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

// Rest of your code

【讨论】:

    【解决方案2】:
    public $db_fields = array($this->get_db_fields());
    

    这里使用'array'是不对的,应该是

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

    第二,类有构造函数...

    所以

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

    此外,现在不鼓励使用 mysql_query,如果您正在使用面向对象,则已经使用 PDO

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 2011-09-23
      • 2016-11-25
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      相关资源
      最近更新 更多