我正在尝试编写代码,以便能够在PHP中扩展和收缩乘法表中的行和列。这是我目前拥有的代码,我认为它能够扩展和收缩行和列:
<?php
$row=4;
$col=4;
if(isset($_GET["row"]))
{
$row=$_GET["row"];
}
if(isset($_GET["col"]))
{
$col=$_GET["col"];
}
?>
<html style="background-color: #90A7E8;">
<meta name="viewport" content="width=device-width, initial-scale=1">
<html lang="en">
<head>
<body>
<ul>
<?php
echo "<table>";
for($r=1;$r<$row+1;$r++){
echo "<tr>";
for($c=1;$c<$col+1;$c++){
$p=$c*$r;
//~ echo "<td>";
echo "<td>$p</td>";
//~ echo "</td>";
}
echo "</tr>";
}
echo "</table><br>";
$row++;
echo "</ul><a href='math.php?row=$row?col=$col'>more rows</a><br>";
$row-=1;
echo "<a href='math.php?row=$row?col=$col'>less rows</a><br>";
$col++;
echo "<a href='math.php?row=$row?col=$col'>more columns</a><br>";
$col-=1;
echo "<a href='math.php?row=$row?col=$col'>less columns</a><br>";
?>
</body>
</html>当我运行代码时,我一直收到这个错误,并且无法展开和收缩列。我在下面这行代码中得到了一个格式不正确的数值错误:for($r=1;$r<$row+1;$r++)
当我尝试展开和收缩列时,它只收缩行。
总而言之,我有一个乘法表,我想只使用PHP扩展和收缩行和列。当我运行上面指定的代码时,我在上面指定的行上得到一个错误,说“遇到了格式不正确的数值”,并且无法展开或收缩列。有人能帮我吗?
发布于 2021-05-05 09:27:52
从格式不正确的数值开始:$_GET中的值都是字符串。您需要将这些字符串转换为整数。
$row=(int)$_GET["row"];在您的链接中,查询字符串的格式不正确。查询字符串以问号开头,键/值对之间用与号(&)分隔。所以你会得到
echo "</ul><a href='math.php?row=$row&col=$col'>more rows</a><br>";最后,计算新的行数和列数的代码只适用于增加这些值,因为减少它们的计算只是逆转了应用于前一行的增加。
从$row设置为4开始:
$row++; // $row = 5
echo ... // More rows
$row -=1 // $row is now 4
echo ... // Fewer rows.有很多方法可以解决这个问题。一种方法是为新的行数和列数使用新的变量。
从$row设置为4开始:
$newRow = $row+1; // $newRow = 5
echo ... // More rows
$newRow = $row-1 // $newRow is now 3
echo ... // Fewer rows.将所有这些放在一起可以得到以下结果:
<?php
$row=4;
$col=4;
if(isset($_GET["row"]))
{
$row=(int)$_GET["row"];
}
if(isset($_GET["col"]))
{
$col=(int)$_GET["col"];
}
?>
<html style="background-color: #90A7E8;">
<meta name="viewport" content="width=device-width, initial-scale=1">
<html lang="en">
<head>
<body>
<ul>
<?php
echo "<table>";
for($r=1;$r<$row+1;$r++){
echo "<tr>";
for($c=1;$c<$col+1;$c++){
$p=$c*$r;
//~ echo "<td>";
echo "<td>$p</td>";
//~ echo "</td>";
}
echo "</tr>";
}
echo "</table><br>";
$newRow = $row+1;
echo "</ul><a href='math.php?row=$newRow&col=$col'>more rows</a><br>";
$newRow = $row-1;
echo "<a href='math.php?row=$newRow&col=$col'>less rows</a><br>";
$newCol = $col+1;
echo "<a href='math.php?row=$row&col=$newCol'>more columns</a><br>";
$newCol = $col-1;
echo "<a href='math.php?row=$row&col=$newCol'>less columns</a><br>";
?>
</body>
</html>https://stackoverflow.com/questions/67393787
复制相似问题