2013-04-27 34 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