0
<?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() {


    }

}

?>

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

$this->变量;

并且不必分配每个数据行,我在加载方法中选择。如何?

4

2 回答 2

1

我假设以下内容:

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

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

那么也许在你的方法中使用变量 variables 可能是一个可行的解决方案load()

foreach($user as $key => $userData){
   $this->$$key = $userData; //Note the use of variables variable
}
于 2012-04-14T11:25:49.080 回答
0

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

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

public function load() {
  list($this->id, $this->username) = getUserData();
}
于 2012-04-14T11:22:36.770 回答