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 に答える