不懂就问,入门级面向对象实例报错

sunen 2016-07-07 04:06:41
最近在看视频,跟着写了几句代码,能够运行,但是有错误如下,请各位指点!(原凉我的幼稚写法)

首先是lei.php
<?php
/**
* 四则运算类
*/
class JiSuan
{
function jisuan($num1,$num2,$fuhao){
switch ($fuhao) {
case '+':
return $num1+$num2;
break;
case '-':
return $num1-$num2;
break;
case '*':
return $num1*$num2;
break;
case '/':
return $num1/$num2;
break;
default:
echo "运算符号有误";
break;
}

}

}
?>


然后是houduan.php
<?php
header("content-type:text/html;charset=utf-8");
require_once('./lei.php');
$pre=$_POST['fuhao'];
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$go= new JiSuan();
echo $num1.$pre.$num2."等于". $go->jisuan($num1,$num2,$pre);
?>

前端qianduan.php
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<h1>我的计算器</h1>
<form action="houduan.php" method="post">
num1: <input type="text" name="num1" class="num1"><br><br>
oper: <select name="fuhao" id="fuhao">
<option name="+">+</option>
<option name="-">-</option>
<option name="*">*</option>
<option name="/">/</option>
</select><br><br>
num2: <input type="text" name="num2" class="num2"><br><br>
<input type="submit" name="tijiao" value="提交">
</form>

</html>


报错如下:


结果是正确的,但是咋把最后一个都没有匹配道的情况语句也输出了,还有上面的错误应该如何改正呢?
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunen 2016-07-07
  • 打赏
  • 举报
回复
谢谢二位,特别是版主百忙中的回复,费心了!!
xuzuning 2016-07-07
  • 打赏
  • 举报
回复
php 的类名、函数(方法)名都是不区分大小写的 类中与类名相同的方法是作为构造函数使用的(php7取消了这一约定) 这就是出现错误的原因
王大牙 2016-07-07
  • 打赏
  • 举报
回复
首先类文件里的类名和方法名尽量不要写成一样的。 然后再switch里面的变量前面加个 ‘@‘ 错误抑制符

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧