我是php的新手。所以我只是将我的java代码翻译成php。
它说
解析错误:第15行的D:\ files \ xampp \ htdocs \ try.php中出现语法错误,意外“计数器”(T_STRING)。
这是我的代码:
<form action="" method = "POST">
Enter the first number: <input type="number" name="FirstNum" required><br><br>
<input type = "submit" value = "Enter"/>
</form>
<?php
int counter = 0;
while (counter < 1) {
switch($_POST['FirstNum'])
{
case "1":
echo "Addition";
counter++; break;
case "2":
echo "Subtraction";
counter++; break;
case "3":
echo "Multiplication";
counter++; break;
case "4":
echo "Division";
counter++; break;
default:
echo "Invalid Operation";
}
}
?>
答案 0 :(得分:1)
PHP变量始终以$
符号开头,因此每当您使用变量时,$
符号都是必需的。
更正后的代码如下:
<?php
$counter = 0;
while ($counter < 1) {
switch($_POST['FirstNum'])
{
case "1":
echo "Addition";
$counter++; break;
case "2":
echo "Subtraction";
$counter++; break;
case "3":
echo "Multiplication";
$counter++; break;
case "4":
echo "Division";
$counter++; break;
default:
echo "Invalid Operation";
}
}
?>
答案 1 :(得分:0)
OP引用的错误消息与第一个语句有关:
int counter = 0;
其中代码尝试声明变量的类型。但是,PHP用户也不需要这样做,因为PHP根据其值确定变量的类型。但是,如果消除“int”,则如下所示:
counter = 0;
代码仍然出错,因为在PHP中,变量的名称由前缀美元符号形式的和 a sigil组成。对第一个陈述的正确修正如下:
$counter = 0;
重要:始终将用户提供的数据视为可疑数据。应该检查它是否包含有效数据,而不是直接使用$_POST['FirstNum']
。请考虑以下解决方案:
<?php
if (isset($_POST['submit'])) {
$cleanFirstNum = (ctype_digit($_POST['FirstNum']) )? $_POST['FirstNum'] : "0";
$counter = 0;
while ($counter++ < 1) {
switch( $cleanFirstNum )
{
case "1":
echo "Addition";
break;
case "2":
echo "Subtraction";
break;
case "3":
echo "Multiplication";
break;
case "4":
echo "Division";
break;
default:
echo "Invalid Operation";
break;
}
}
}
?>
如果$cleanFirstNum
不是数字,则它获取零值并运行默认代码。
请注意,使用类型编号的input元素,您可以指定最小值和最大值来限制用户的选项。此示例中的后端代码确保如果有人篡改表单,您可以避免无效数据产生有害影响。
<html>
<head><title>testing</title></head>
<body>
<form action="" method = "POST">
Enter the first number: <input type="number" min="1" max="4" name="FirstNum" required><br><br>
<input type="submit" name="submit" value="Enter"/>
</form>
</body>
</html>
最后,最后一个问题:OP的代码应该使用PHP还是JavaScript更合适(参见相关示例here)?
热门PHP资源:Manual