函数之间共享变量


Sharing variables between functions

我需要根据用户的状态显示不同的措辞。我意识到while()变量超出了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);
?> 

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

此外,还可以看看PHP的变量作用域。