还有要改进的地方吗
来源:1-15 简易计算器的实现
栽了清秋
2019-12-28 18:26:22
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>计算器</title>
</head>
<body>
<h1>计算器</h1>
<form action="#" method="post">
<input type="text" name="name1" id="">
<select class="" name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
<input type="text" name="name2" id="">
<input type="submit" value="计算" name="kick">
</form>
<?php
error_reporting(E_ALL&~E_NOTICE);
header('content-type:text/html;charset=utf-8');
$act=$_POST[kick];
$name1=$_POST[name1];
$name2=$_POST[name2];
$op=$_POST[op];
if($act) {
if (is_numeric($name1) && is_numeric($name2)) {
switch ($op) {
case '+':
$namber = $name1 + $name2;
break;
case '-':
$namber = $name1 - $name2;
break;
case '*':
$namber = $name1 * $name2;
break;
case '%':
$namber = $name1 % $name2;
break;
case '/':
if ($name2!=0){
$namber=$name1/$name2;
}else{
exit(不能除数0);
}
}
echo "运行结果:" . "{$name1}{$op}{$name2}={$namber}";
}else{
exit(请输入合法数值);
}
}
?>
</body>
</html>
1回答
好帮手慕小尤
2019-12-29
同学你好,1. 字符串需要使用引号镶嵌着。建议同学在$_POST与exit函数中添加引号。修改后代码如下:


2. 在平常测试时,是不会抑制错误的,当关闭抑制函数时报错,如图所示:

建议同学使用empty()检测是否有post数据,然后接收数据。修改后代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>计算器</title>
</head>
<body>
<h1>计算器</h1>
<form action="#" method="post">
<input type="text" name="name1" id="">
<select class="" name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
<input type="text" name="name2" id="">
<input type="submit" value="计算" name="kick">
</form>
<?php
// error_reporting(E_ALL&~E_NOTICE);
header('content-type:text/html;charset=utf-8');
if(!empty($_POST)) {
$act=$_POST['kick'];
$name1=$_POST['name1'];
$name2=$_POST['name2'];
$op=$_POST['op'];
if (is_numeric($name1) && is_numeric($name2)) {
switch ($op) {
case '+':
$namber = $name1 + $name2;
break;
case '-':
$namber = $name1 - $name2;
break;
case '*':
$namber = $name1 * $name2;
break;
case '%':
$namber = $name1 % $name2;
break;
case '/':
if ($name2!=0){
$namber=$name1/$name2;
}else{
exit('不能除数0');
}
}
echo "运行结果:" . "{$name1}{$op}{$name2}={$namber}";
}else{
exit("请输入合法数值");
}
}
?>如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
回答 2
回答 1
回答 1
回答 1
回答 1