2013-04-27 3 views
0

Это функция.Функция не будет echo

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

где ваше объявление функции? –

+1

Вы проверили, что ваш запрос возвращает что-либо. Попробуйте сделать с mysql_num_row – mukund

+0

Функции 'mysql_ *' устарели и должны быть заменены функциями 'mysqli_ *'. – michaelb958

ответ

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

Правильный ответ, но не совсем правильные рассуждения. –

+0

Это не сработало. – user2325910

+0

@Kolink, пожалуйста, поделитесь правильными рассуждениями или предлагаемыми изменениями. – Sean

Смежные вопросы