Php无法重新声明功能

tat*_*y27 1 php

据我所知,该功能只宣布一次.但我得到这个错误无法重新声明calcPercentages(),它告诉我它在第17行声明是正确的

包含错误功能的函数...

function auditStats($audit){

    $mysqli = dbConnect();
    $audit_id = $audit;
    $result = $mysqli->query("SELECT imageGrade, SUM(imageGrade=1) AS grade1, SUM(imageGrade=2) AS grade2, SUM(imageGrade=3) AS grade3, COUNT(*) AS total_imgs FROM image WHERE type != 'standard' and auditID ='$audit_id'")or exit("Error code ({$mysqli->errno}): {$mysqli->error}");
    $row = $result->fetch_assoc();

    $grade1 = $row['grade1'];
    $grade2 = $row['grade2'];
    $grade3 = $row['grade3'];
    $totalImgs = $row['total_imgs'];

    function calcPercentages($grade, $total){
        $percent = round(($grade / $total) * 100,2);
        return $percent;
    }
    if ($totalImgs != 0){
        $percent_1 = calcPercentages($grade1, $totalImgs);
    }
    $return_array = [
        'total'=>$totalImgs,
        'percent_1'=>$percent_1
    ];
    return $return_array;
}
Run Code Online (Sandbox Code Playgroud)

除了auditStats函数之外,该函数不会被调用,并且使用在页面下方进一步调用结果

$percent_1 = auditStats($auditID)[percent_1];
Run Code Online (Sandbox Code Playgroud)

请原谅我,如果我犯了明显的新手错误,我正在从程序转向OOP,我刚刚开始使用它.

Rob*_*ill 6

calcPercentagesauditStats函数内部声明,因此每次调用时都会重新声明它auditStats.

搬到calcPercentages外面auditStats.