2

我有一个简单的 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,但随后返回“烂”。知道这是怎么回事吗?

4

2 回答 2

3

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

1:将它们作为参数传递

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

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

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

3:(不推荐)使用global关键字“导入”变量

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

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

function tomato() {
    // do stuff with $GLOBALS['info'][2];
}
于 2013-03-01T23:51:57.857 回答
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]);
于 2013-03-01T23:47:25.280 回答