2014-04-14 41 views
1

我在MVC中有一個應用程序。我想通過ID獲取用戶的名字。我有一個函數來做到這一點在PHP中訪問數據映射變量?

function getNameById($id = null) { 
    if ($id !== null) { 
     // get name by ID from database 
     return $id; 
    } else { 
     // get name by SESSION ID from database 
     return $id; 
    } 
} 

但我看到有人調用該函數是這樣的:

$user = new User(); 
$user->getNameById(); 

,但我不知道這樣的語句該怎麼辦。我把我的一個變量。這是否正確使用?

$user = new User(); 
$fname = $user->getNameById(); 
+0

的funtion返回一個值,你用它做它給你什麼?? – Steve

+0

我明白它會返回一個值。是否正確的MVC做if語句如if($ this-> userMapper-> getNameById()==='Bill')'?我想從模板中訪問它。 – user1475632

+0

'這'不過是指一個當前課程...所以你不可以上課,然後創建該課程的對象,並將VAL賦值給微粒變量。例如:class a {public function getUserNameById(){return「your name」;}}然後創建該類的對象,如$ object = new a();並調用函數就像$ username = $ object-> getUserNameById(); ..現在你完成了 –

回答

2

您在此特定情況下正確使用。

因爲如果是

$user = new User(); 
if($usernames = $user->getNameById(1)) { 
    //find and store into $usernames 
} 
else { 
} 
+0

OK。我從控制器中調用它。我應該從Controller中調用Data Mapper嗎?或者我應該讓模型做到這一點。 – user1475632

+0

最好讓模型做到這一點。數據映射器位於模型和數據庫之間。控制器 - >模型 - > DataMapper - >物理數據庫。 –