for($i = 0;$i <50; $i++){ $data1 = $r["wr1_linktime"]; $data2 = $r["wr1_loop"]; $data3 = $r["wr1_onew"]; $data4 = $r["wr0_linktime"]; $data5 = $r["wr0_loop"]; $data6 = $r["wr0_onew"]; $data1 = "data1_" . ($i + 1); $data2 = "data2_" . ($i + 1); $data3 = "data3_" . ($i + 1); $data4 = "data4_" . ($i + 1); $data5 = "data5_" . ($i + 1); $data6 = "data6_" . ($i + 1); $time = date("H:i:s"); array_push($r[$wr1_linkt],$data1); array_push($r[$wr1_loop],$data2); array_push($r[$wr1_onew],$data3); array_push($r[$wr0_linkt],$data4); array_push($r[$wr0_loop],$data5); array_push($r[$wr0_onew],$data6); array_push($r[$wrc_time],$time); if(count($r[$wr1_linkt]) > 50){ array_shift($r[$wr1_linkt]); array_shift($r[$wr1_loop]); array_shift($r[$wr1_onew]); array_shift($r[$wr0_linkt]); array_shift($r[$wr0_loop]); array_shift($r[$wr0_onew]); array_shift($r[$wrc_time]); } usleep(10); }
时间: 2024-01-31 22:04:11 浏览: 63
这段代码有几个问题:
1. 变量名拼写错误:$wr1_linkt应为$wr1_linktime,$wr0_linkt应为$wr0_linktime。
2. 变量赋值覆盖:$data1-$data6在赋值前已经被赋值为$r中的值,再次赋值会覆盖掉原有的值。
3. 数组越界:如果$r中的某个数组长度不足50,就会导致array_shift出错。
以下是修改后的代码:
```php
for ($i = 0; $i < 50; $i++) {
$data1 = "data1_" . ($i + 1);
$data2 = "data2_" . ($i + 1);
$data3 = "data3_" . ($i + 1);
$data4 = "data4_" . ($i + 1);
$data5 = "data5_" . ($i + 1);
$data6 = "data6_" . ($i + 1);
$time = date("H:i:s");
array_push($r["wr1_linktime"], $data1);
array_push($r["wr1_loop"], $data2);
array_push($r["wr1_onew"], $data3);
array_push($r["wr0_linktime"], $data4);
array_push($r["wr0_loop"], $data5);
array_push($r["wr0_onew"], $data6);
array_push($r["wrc_time"], $time);
if(count($r["wr1_linktime"]) > 50){
array_shift($r["wr1_linktime"]);
array_shift($r["wr1_loop"]);
array_shift($r["wr1_onew"]);
array_shift($r["wr0_linktime"]);
array_shift($r["wr0_loop"]);
array_shift($r["wr0_onew"]);
array_shift($r["wrc_time"]);
}
usleep(10);
}
```
修改后的代码中,将变量名修正、删除不必要的变量赋值操作,并且在数组操作前增加了数组长度的检查,避免数组越界问题。
阅读全文