php - 在函数之间共享变量

标签 php mysql function while-loop

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

最佳答案

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

此外,请查看 PHPVariable Scope .

关于php - 在函数之间共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896624/

相关文章:

php - 尝试使用 laravel 删除值时出错

javascript - 数组中随机数量的随机字母仅返回一个元素

php - 如何在PHP中检查失败的DateTime?

PHP 为 Google map 生成的 JSON : a tiny mystery

php - 使用php从sqlite3数据库中检索表名

mysql - 在mysql中更新具有相同值的多行

javascript - 将多个输入值传递给函数以更新图像

Javascript 仅在被调用的函数内工作

php - 关注/取消关注工具 PHP/mySQL

php MySql 错误为 null