Php 函数间共享变量

Php 函数间共享变量,php,mysql,function,while-loop,Php,Mysql,Function,While Loop,我需要根据用户的状态显示不同的措辞。我意识到while()变量超出了Online_Status()的范围,但我不知道如何在Online_Status()中共享变量,甚至无法在包含与while()相同信息的Online_Status()中定义新变量。我已经试着在while()中、while()附近、while()之外以及每隔几个小时的配置中放置联机状态()。没有发生。我将感谢任何帮助 <?php require_once('connect.php'); $con = mysqli_co

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

使用
全局
关键字:

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

使用全局变量通常被视为不好的做法,但这是一个争论的问题,如果不学习将参数传递到方法中,您将无法在PHP中做很多事情,因此,我强烈建议使用Ali在此建议的第二个实现,这正是我想要的,谢谢。我就快到了,我肯定除了那个我什么都试过了。我现在就试试。