PHP:在函数中的if语句中使用数组中的值

时间:2011-10-27 21:34:25

标签: php arrays function if-statement

我有以下代码,可以与我的代码很好地协同工作:

    if ($progressData[1] == "yes") {

        echo "Complete";
    }
    else

        echo "Not Yet Complete";

但是,我想从函数中调用它:

function progressOutput () {

    if ($progressData[1] == "yes") {

        echo "Complete";
    }
    else

        echo "Not Yet Complete";

}   

当我致电progressOutput()时,即使$progressData[1]等于“是”,我也会得到“尚未完成”。

以下是我调用函数的方法:

Mission Status: <?php progressOutput(); ?>

progressOutput()实际上等于“是”时,我需要做什么让$progressData[1]返回“完成”?

4 个答案:

答案 0 :(得分:3)

您需要将调用范围内的变量传递给函数,以便函数可以访问它。

你的功能应该接受一个论点:

function progressOutput ($progressData) {
    if ($progressData[1] == "yes")
        echo "Complete";
    else
        echo "Not Yet Complete";
}   

当你打电话给它时,你应该提出一个论点:

Mission Status: <?php progressOutput($progressData); ?>

您的函数直接输出数据通常是一个坏主意;您可以通过返回值而不是回显它来清理它:

function progressOutput ($progressData) {
    if ($progressData[1] == "yes")
        return "Complete";
    return "Not Yet Complete";
}  

输出函数返回的值:

Mission Status: <?= progressOutput($progressData); ?>

答案 1 :(得分:2)

在PHP中查找variable scoping。 PHP的变量不会“渗透”到较低的范围,必须在较低的范围内明确声明为全局变量才能显示。

function progressOutput() {
   global $progressData;
   etc...
}

另一个选项是将progressData作为参数传递:

progressOutput($data);

function progressOutput($progressData) {
    ....
}

答案 2 :(得分:0)

$ progressData不在您的函数范围内 你应该把它传递给你的功能。

function progressOutput($ progressData){ //现在可以在这里找到 }

答案 3 :(得分:0)

假设您正在使用上面显示的函数,这意味着在函数内该变量未知。

为了达到这个目的,您可以在global处找到这样的变量:

global $progressData;
之后你可以使用它。

或者你应该在函数中传递变量:

progressOutput(progressData[1]);