php - 如果条件每次都失败

时间:2013-03-01 23:45:31

标签: php if-statement

我有一个简单的PHP功能。然而,无论如何,它每次都会失败。

function for determining tomato pic

echo "$info[2]";
function tomato()
{
    if(intval($info[2]) > 60)
        return "fresh";
    else if(intval($info[2]) < 60)
        return "rotten";
}

它在页面上回显95,但随后返回“烂”。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

函数不从父作用域继承变量。有几种方法可以解决这个问题:

1:将它们作为参数传递

function tomato($info) {...}
tomato($info);

2:如果是匿名函数,请使用use子句

$tomato = function() use ($info) {...}

3 :(不推荐)使用global关键字&#34;导入&#34;变量

function tomato() {
    global $info;
    ...
}

4 :(非常糟糕,但为了完整性而添加)使用$GLOBALS数组

function tomato() {
    // do stuff with $GLOBALS['info'][2];
}

答案 1 :(得分:1)

你必须让函数知道变量,试试

function tomato() {
    global $info;
    ...

或者,将值作为参数传递给函数:

function tomato($tomatocondition) {
    if(intval($tomatocondition) > 60)
        return "fresh";
    else if(intval($tomatocondition) < 60)
        return "rotten";

并称之为......

echo tomato($info[2]);