我有以下代码,可以与我的代码很好地协同工作:
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]
返回“完成”?
答案 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]);