doulan1866 2014-01-15 04:29
浏览 18

PHP - 局部变量更改会导致全局更改

I am stuck, I can't find any reference to this problem. It shouldn't be happening. The global variable $assignmentInfo is passed into the function, manipulated, and returned as a different variable.

BUT, the local manipulations within the function are propagated to the global variable, so that the next time the function gets called, $assignmentInfo has been changed. I want to pass in the same, unchanging version of $assignmentInfo each time I call the function.

Any suggestions?

function studentScores($submissionInfo, $assignmentInfo){
    //********************************** Add submission data to assignment data ****************************************************************************
    foreach($assignmentInfo as $assignmentGroup){
        foreach($assignmentGroup->assignments as $assignment){
            foreach($submissionInfo as $submission){
                if(isset($assignment->id) and isset($submission->assignment_id) and $assignment->id == $submission->assignment_id){
                    if (isset($submission->score)){$assignment->score = $submission->score;}
                    if (isset($submission->submitted_at)){$assignment->submitted_at = $submission->submitted_at;}
                    if (isset($submission->workflow_state)){$assignment->workflow_state = $submission->workflow_state;}
                    break;
                }
            }       
        }
    }
    $studentScores = $assignmentInfo;
    return $studentScores;
}

$studentScores = studentScores($submissionInfo->submissions, $assignmentInfo);
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
    • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
    • ¥15 MATLAB中streamslice问题
    • ¥15 如何在炒股软件中,爬到我想看的日k线
    • ¥15 seatunnel 怎么配置Elasticsearch
    • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
    • ¥15 (标签-MATLAB|关键词-多址)
    • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
    • ¥500 52810做蓝牙接受端
    • ¥15 基于PLC的三轴机械手程序