在一些循环语句时经常用到++/--符号,如以下例子;
本意是
$i = Often::edit_save($weekMapOne, $sectionMapOne, $schedule, $data);
$cou = count($i);
$cou1 = $cou/2;
$message = "共修改 $cou1 项,修改的数据项为:";
$num = 0;
if ($cou == 0) {
$message = '没有修改任何数据';
} else {
for ($num;$num < $cou;$num++) {
//
$weekNumber = Often::englishCovertChinese($i[$num]);
$sectionNumber = Often::englishCovertChinese($i[++$num]);
$message = $message."\n".$num.':'.$weekNumber.' '.$sectionNumber."\n";
}
}
很明显,没有理解++/--符号的意思,如
$sectionNumber = Often::englishCovertChinese($i[++$num]);
这里之所以没有达到想要的效果,是因为错误的理解了++的意思,这里原本理解为 $i[$?]----->$?=$num + 1;
这是不对的,应该是这样$i[$num]------->$num = $num + 1;
这是很典型的错误理解,执行结果:
很显眼不是我想要的效果,这是执行一次for循环num变量自加两次导致的,知道原因后解决的办法就有很多了,我修改代码如下:
$i = Often::edit_save($weekMapOne, $sectionMapOne, $schedule, $data);
$cou = count($i);
$cou1 = $cou/2;
$message = "共修改 $cou1 项,修改的数据项为:";
$num = 0;
if ($cou == 0) {
$message = '没有修改任何数据';
} else {
for ($num,$num1 = 1;$num < $cou;$num++,$num1++) {
//
$weekNumber = Often::englishCovertChinese($i[$num]);
$sectionNumber = Often::englishCovertChinese($i[++$num]);
$message = $message."\n".$num1.':'.$weekNumber.' '.$sectionNumber."\n";
}
}
执行图:
迄今为止项目完成内容:
学生注册、学生登录、教师注册、教师登录、编辑课表、课表最后更新于多久前的显示。
$sectionNumber = Often::englishCovertChinese($i[++$num]);