我正在尝试将一些PHP脚本从运行PHP版本7的PC移动到运行PHP版本8的PC。以下每个()查询都有问题:
do {
$Tabelle->SetLine(array_values($Line));
foreach($Line as $Spalte => $Kapitel) {
list($Name, $URL) = each($URLs[$Spalte]);
if ($URL == "") $Line[$Spalte] = $Name;
else $Line[$Spalte] = '<a href="'.$URL.'">'.$Name.'</a>';
}
} while (reset($Line) != "" || next($Line) != "" || next($Line) != "");
我对此进行了如下自定义:
do {
$Tabelle->SetLine(array_values($Line));
foreach($Line as $Spalte => $Kapitel) {
foreach($URLs[$Spalte] as $Name => $URL)
if ($URL == "") $Line[$Spalte] = $Name;
else $Line[$Spalte] = '<a href="'.$URL.'">'.$Name.'</a>';
}
} while (reset($Line) != "" || next($Line) != "" || next($Line) != "");
它在无限循环中运行错误!
然后我调整如下:
$Tabelle->SetLine(array_values($Line));
foreach($Line as $Spalte => $Kapitel) {
foreach($URLs[$Spalte] as $Name => $URL) {
if ($URL == "") $Line[$Spalte] = $Name;
else $Line[$Spalte] = '<a href="'.$URL.'">'.$Name.'</a>';
$Tabelle->SetLine(array_values($Line));
}
}
它的工作虽然:在旧机器上,几行显示为每行3列,现在也是3列,但行数是平常的3倍,即第一列的值变化,第二列和第三列保持不变,然后第一列和第三列保持不变,第二列变化,然后第一列和第二列保持不变,第三列变化
2条答案
按热度按时间w8ntj3qf1#
我找到了这个解决方案,它很有效。使用myEach()代替each()
wgx48brx2#
我不知道如果你的代码是工作之前.但这里是PHP8兼容版本的代码: