PHP变量值未更新
这是我在这里的第一个问题,但是我经常使用这个,所以很抱歉PHP变量值未更新,php,variables,if-statement,scope,Php,Variables,If Statement,Scope,这是我在这里的第一个问题,但是我经常使用这个,所以很抱歉 foreach($quizzData->questions->children() as $quest) { $questDesc = $quest->direction; $offset = 1; if(strpos($questDesc, "student") !== false) {
foreach($quizzData->questions->children() as $quest)
{
$questDesc = $quest->direction;
$offset = 1;
if(strpos($questDesc, "student") !== false)
{
foreach($quest->answers->children() as $questChild)
{
$name = trim($questChild);
$result = $db->executeSQL("CALL SPU_SE_STUDENT_ID('$name')")->fetch_assoc();
$studentID = $result['ID_STUDENT'];
$db->freeResult();
$pos = $questChild['userDefinedPosition'] + $offset;
if( $quizSummary['studentID'] == $studentID)
{
$offset = 0;
$sql = "CALL SPU_IN_STUDENT_EVAL_SUMMARY ($period, {$quizSummary['studentID']}, $studentID,0)";
$db->executeSQL($sql);
$db->freeResult();
}
else
{
$sql = "CALL SPU_IN_STUDENT_EVAL_SUMMARY ($period, {$quizSummary['studentID']}, $studentID,$pos)";
$db->executeSQL($sql);
$db->freeResult();
}
}
}
}
代码运行时没有错误,但是变量$offset在if中没有更改,并且正在执行if代码,因为我在数据库上验证了它。
$db变量是另一个类的实例,该类没有任何名为$offset的变量。
我不知道它为什么不起作用,有人能帮我吗
示例:
我有4个学生排名,但其中一个是学生本人,比如说学生A。
它们所在的数组索引从0开始,但是我不能有秩0,所以我添加了偏移量1。
然后,我为学生们做了内部讲演,应该是这样的:
Student C 0(index) + 1(offset) = 1
Student B 1(index) + 1(offset) = 2
Student A = 0
Student D 3(index) + 0(offset)
评估完所有4个学生后,我返回外部foreach并将$offset重置为1。然而,发生的情况是,在学生A之后,$offset没有按照行$offset=0设置为0代码>。我知道这段代码正在执行
先谢谢你
已解决
问题是,我被告知排名的数组将被排序,但这不是php问题,只是用户和我之间的通信问题。
谢谢你的帮助。
不管是谁否决了我的问题,我想你都知道,一切都很好。解决的问题是,有人告诉我排名的数组将被排序,但这不是,不是php问题,只是用户和我之间的通信问题。谢谢你的帮助。不管是谁否决了我的问题,我想你都知道,对吧?genious。你意识到,$offset
在你的外部foreach
循环的下一次迭代中被设置回1
,对吗?所以即使它在变,它也会变回来。嗨,jszobody。是的,这是正确的,它需要放回外循环,我使用偏移量,因为索引[0],这是一个排名,当学生自己是0时,它是排名,并将偏移量设置为0,因为下一个索引将是正确的值。我不知道问题出在哪里。您有一个变量,它正在被更改,但随后又被更改回来。你认为这里会发生什么事情而没有发生?让我做一个例子:我有4个学生被排名,但其中一个是学生本人,比如说学生A。数组索引从0开始,所以我做内部foreach循环学生,但我不能有排名0,所以我加上偏移量1。然后是这样的:学生c0(索引)+1(偏移量)=1学生b1(索引)+1(偏移量)=2学生A=0学生d3(索引)+0(偏移量)在所有4个学生都被评估后,我返回外部foreach并将$offset重置为1