我创建的两个对象有问题。一旦我打电话给一个,我就很难打电话给另一个。让我从这两个对象中编写一些代码来说明我的意思。到目前为止,我所拥有的效果很好。
class User {
private $userdata = array();
public function __construct(){
}
public function set($var, $value) {
$this->userdata[$var] = $value;
}
public function get($var) {
if(isset($this->userdata[$var])){
return $this->userdata[$var];
}
return NULL;
}
}
然后我有我的用户服务类:
class UserService {
private $db;
private $error;
private $fields = array();
public function __construct() {
$this->db = new Database();
}
public function updateUser(){
//some update query
}
public function getCurrentUser($fields) {
$query = sprintf("SELECT ".$this->fields." FROM User WHERE IDUser=%s",
$this->db->GetSQLValueString($_SESSION['MM_Username'], "int"));
$result = $this->db->query($query);
if($result && $this->db->num_rows($result) > 0) {
//create new user class
$user = new User();
$row = $this->db->fetch_assoc($result);
//set rows as object
foreach($row as $key => $value){
$user->set($key, $value);
return $user;
}
}
}
}
在我打电话给用户的页面上,我运行以下代码:
$um = new UserService();
$userfields = "*";
$user = $um->getCurrentUser($userfields);
所以我现在已经通过调用实例化了我的 User() 类getCurrentUser()
我正在努力看看我现在如何调用updateUser()
$user 因为 $user var 是 User 类而不是userService
类的一部分。