2013-04-27 37 views
0

這是函數。函數不會回顯

function UsernameFun($ULN) { 
if($ULN){ 
    if(empty($ULN->Nickname)){ 
     return $ULN->Username; 
    } else { 
     return $ULN->Nickname; 
     } 
    } 
} 

$ ULN是這個

if(isset($_SESSION['Username'])) { 
$LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
$ULN = mysql_fetch_object($LoggedIn); 
} 

我把這個呼應

echo"Logged in as ".UsernameFun($ULN->Username); 

如果你需要知道什麼我會很高興地告訴,但截至目前我不知道你還需要知道什麼。

我的意思也不會迴應的是,當我把

echo"Logged in as ".UsernameFun($ULN->Username); 

「被當作」迴音必,用戶名或暱稱不會顯示。

+0

你的函數聲明在哪裏? – 2013-04-27 03:50:18

+1

你檢查了你的查詢是否返回任何東西。嘗試使用mysql_num_row – mukund 2013-04-27 03:53:51

+0

'mysql_ *'函數已被棄用,應該替換爲'mysqli_ *'函數。 – michaelb958 2013-04-27 03:56:49

回答

1

由於您只發送$ULN->Username到您的功能UsernameFun($ULN->Username),它是您的功能中唯一可用的值。所以它試圖找到$ULN->Username->Username$ULN->Username->Nickname。試着改變你的代碼只發送對象$ULN -

echo "Logged in as ".UsernameFun($ULN); 

看看與函數和函數參數變量的作用域。這將有助於理解爲什麼您作爲函數參數傳遞的是函數中唯一可用的值。 http://php.net/manual/en/language.variables.scope.php

+0

正確的答案,但不完全正確的推理。 – 2013-04-27 04:13:26

+0

這沒有奏效。 – user2325910 2013-04-27 04:15:53

+0

@Kolink請分享正確的推理或建議編輯。 – Sean 2013-04-27 04:18:52