2012-04-14 59 views
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() { 


    } 

} 

?> 

在'load'方法中,我將加載當前用戶的所有信息(id)但我不知道如何加載所有信息的最佳方式。我可以獲取所有數據,然後只分配所有私有變量,但我認爲必須有另一種「便宜」的方式才能獲取所有數據,因此我可以使用這樣的數據。用戶類別'load'數據

$ this-> variable;

而不必ASSIGN每一個數據行,我選擇加載方法。怎麼樣?

+0

目前尚不清楚你想要達到的目標。你可以開發'$ this->變量;'和你想要做的初始化類型嗎? – 2012-04-14 11:25:48

回答

1

我假設如下:

  • 每個用戶對象代表數據庫中的1排
  • 您可以檢索信息您的用戶在關聯陣列中:

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

那麼也許使用變量變量可能是你load()方法的可行的解決方案:

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

可以用PHP分配多個變量,像這樣:

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

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