在IF语句中使用函数时没有数据和没有错误

I am having trouble getting my php script to work when using a function in if statements.

The code currently runs, but doesn't give me any information, nor any errors, if I remove the IF'S it works fine, but the project I am working on, this is essential.

Here is my code - I have took out the SQL to save space..

if ($VAR === 'PK%') {


    CDB::UseDB('blah', 'blah', 'blah', 'blah');
    $sql = "blah blah
            ";

    $lrs = CDB::ExecuteQuery($sql);

    if ($lrs) {
        $jsonData = convert($lrs);

        function convert($lrs)
        {
            // RE-GET VARIABLE AS IT CAN'T GET IT FROM OUTSIDE OF FUNCTION
            $VAR = $_GET['VARIABLE'];
            $intermediate = array();
            while ($vals = CDB::GetAssoc($lrs)) {
                $key = $vals['VAR'];
                $y = $vals['MEASURE_1'];
                if (!isset($intermediate[$key])) $intermediate[$key] = array();
                $intermediate[$key][] = array('x' => count($intermediate[$key]), 'y' => $y);


            }


            $output = array();

            foreach ($intermediate as $key => $values) {
                $output[] = array(
                    "key" => $key,
                    'values' => $values
                );
            }

            return json_encode($output, JSON_NUMERIC_CHECK);


        }

    }
}

Can anyone shed some light on what I am doing wrong?

You are defining your function in a conditional way. In that case its definition must be processed prior to being called.

I would recommend declaring your function separately and then use it, like:

function convert($lrs) {
    // RE-GET VARIABLE AS IT CAN'T GET IT FROM OUTSIDE OF FUNCTION
    $VAR = $_GET['VARIABLE'];
    $intermediate = array();

    while ($vals = CDB::GetAssoc($lrs)) {
        $key = $vals['VAR'];
        $y = $vals['MEASURE_1'];
        if (!isset($intermediate[$key])) $intermediate[$key] = array();
            $intermediate[$key][] = array('x' => count($intermediate[$key]), 'y' => $y);
    }


    $output = array();

    foreach ($intermediate as $key => $values) {
        $output[] = array(
            "key" => $key,
            'values' => $values
        );
    }

        return json_encode($output, JSON_NUMERIC_CHECK);
}

if ($VAR === 'PK%') {
    CDB::UseDB('blah', 'blah', 'blah', 'blah');
    $sql = "blah blah";

    $lrs = CDB::ExecuteQuery($sql);

    if ($lrs) {
        $jsonData = convert($lrs);
    }
}