在php中发现解析错误

时间:2018-01-21 09:16:09

标签: php

我是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";
}
}
?>

2 个答案:

答案 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