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);

只有“登录身份”会回显,用户名或昵称不会回显。

4

1 回答 1

1

由于您只发送$ULN->Username到您的函数UsernameFun($ULN->Username),它是您的函数中唯一可用的值。所以它试图找到$ULN->Username->Usernameand $ULN->Username->Nickname。尝试更改您的代码以仅发送对象$ULN-

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

看看带有函数和函数参数的变量范围。这将有助于理解为什么作为函数参数传递的内容是函数中唯一可用的值。http://php.net/manual/en/language.variables.scope.php

于 2013-04-27T04:11:33.523 回答