用户类 - '加载'数据

时间:2012-04-14 11:19:42

标签: php

<?php

class User {

    private $id;
    private $username;

    public function __construct($id = null) {
        $this->id = $id;

        if (!is_null($this->id)) {
            $this->load();
        }
    }

    public function load() {


    }

}

?>

在'load'方法中,我将加载当前用户的所有信息(id)但是我想知道如何加载所有信息的最佳方法。我可以获取所有数据,然后只分配所有私有变量,但我认为必须有另一种“更便宜”的方式来获取所有数据,所以我可以这样使用

$这 - &GT;变量;

并且不必为每个数据行分配,我在load方法中选择。怎么样?

2 个答案:

答案 0 :(得分:1)

我假设以下内容:

  • 每个User对象代表数据库中的1行
  • 您可以在关联数组中检索用户的信息:

    $user = array('name' => 'John', 'age' => 20);

然后使用变量变量可能是load()方法中可行的解决方案:

foreach($user as $key => $userData){
   $this->$$key = $userData; //Note the use of variables variable
}

答案 1 :(得分:0)

您可以在php中分配多个这样的变量:

private function getUserData() {
  return array("42", "JohnDoe");
}

public function load() {
  list($this->id, $this->username) = getUserData();
}