<?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>可变;
并且不必分配每个数据行,我在加载方法中选择。如何?
我假设如下:
- 每个 User 对象代表数据库中的 1 行
-
您可以在关联数组中检索用户的信息:
$user = array('name' => 'John', 'age' => 20);
那么也许使用变量变量可能是您load()
方法中的可行解决方案:
foreach($user as $key => $userData){
$this->$$key = $userData; //Note the use of variables variable
}
你可以在 php 中像这样分配多个变量:
private function getUserData() {
return array("42", "JohnDoe");
}
public function load() {
list($this->id, $this->username) = getUserData();
}