2014-11-12 4 views
0

Мне нужно отображать различные формулировки в соответствии с состоянием пользователя. Я понимаю, что переменные while() недоступны для Online_Status(), но я не могу понять, как делиться этими переменными или даже определять новые переменные в Online_Status(), содержащие ту же информацию, что и while(). Я попытался поставить Online_Status() в while(), вокруг while(), вне while() и любой другой конфигурации в течение нескольких часов. Не происходит. Буду признателен за любую помощь!Обмен переменными между функциями

<?php 

require_once('connect.php'); 


$con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Connection failed: ' . mysqli_connect_error()); 

$sql = mysqli_query($con, "SELECT UserType, Online, InChat FROM membership WHERE UserType = 2 ORDER BY Online DESC"); 


    while($row = mysqli_fetch_array($sql)){ 

    $UserType = $row['UserType']; 
    $Online = $row['Online']; 
    $InChat = $row['InChat']; 


    echo Online_Status(); 


    } 

    function Online_Status(){ 

     if ($Online == 0) { 
      echo "I am not online. Please come back later"; 
     } 

     else if($Online == 1 && $InChat == 0){ 
      echo "I am Online and I will be in my chatroom shortly."; 
     } 

     else if($Online == 1 && $InChat == 1){ 
      echo "I am Online chat with me now!"; 
     } 

} 

mysqli_close($con); 
?> 

ответ

2

Используйте global ключевое слово:

function Online_Status(){ 
    global $Online; 
    if ($Online == 0) { 
     echo "I am not online. Please come back later"; 
    } 

} 

Лучше передать переменные через функцию с помощью параметров функции:

function Online_Status($Online){ 
    if ($Online == 0) { 
     echo "I am not online. Please come back later"; 
    } 
} 

И называют это:

Online_Status($Online); 

И также, t Посмотрите на PHP's Variable Scope.

+1

Обычно считается, что для использования глобальных переменных плохой практикой, но это вопрос некоторого разногласия, и вы не сможете многое сделать в PHP, не научившись передавать аргументы в свои методы, поэтому я настоятельно рекомендую использовать второй что Али предлагает здесь – DaOgre

+0

Именно то, что я искал, спасибо. Я был почти там, я уверен, что я все испробовал, ЗА ИСКЛЮЧЕНИЕМ. Я попробую это сейчас. – Lori

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