Тема: Перший скрипт, калькулятор
Я щойно почав вивчать PHP і спробував написати калькулятор він працює але код вийшов не дуже, перша проблема це повторення коду на операціях в switch /,*,-,+,%, я спробував створити функцію яка б містила все це а мінявся лише знак
function math_operations($S)
{
$sum=Suma($sum,$S,$num);
$num=$sum;
$sign=$S;
$bool=1;
}
але $sum,$num функція не бачить, я так розумію я створював глобальні зміні, чому ж функція їх не бачить ?
Я напевно допустив ще якісь помилки будь-ласка повідомте про них.
<html>
<meta charset="utf-8"/>
<head>
<title>PHP</title>
</head>
Введіть своє імя
<form name="form1">
<input name="name_user" value=""/>
<input type="submit" name="button" value="Підтвердить"/>
</form>
<?php
if (($_GET["name_user"])!="")
{
echo "Доброго дня! ";
echo $_GET["name_user"];
echo " , це вітання створено за допомогю PHP & HTML<br>";
}
?>
<?php
$sum=$_POST["sum"];
$num=$_POST["calculator"];
$sign=$_POST["sign"];
$bool=$_POST["bool"];
if($bool==1)
{
$bool=0;
$num="";
}
switch($_POST["button1"])
{
case 1:$num=$num."1";break;
case 2:$num=$num."2";break;
case 3:$num=$num."3";break;
case 4:$num=$num."4";break;
case 5:$num=$num."5";break;
case 6:$num=$num."6";break;
case 7:$num=$num."7";break;
case 8:$num=$num."8";break;
case 9:$num=$num."9";break;
case ".":
for($i=0;$i<strlen($num);$i++)
{
if(strcmp($num[$i],".")==0)
break;
else
if($i==strlen($num)-1)
$num=$num.".";
}
break;
case "c":$num="";$sum="0";$sign="";break;
case "0":$num=$num."0";break;
case "+":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="+";
$bool=1;
break;
case "-":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="-";
$bool=1;
break;
case "*":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="*";
$bool=1;
break;
case "/":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="/";
$bool=1;
break;
case "%":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="%";
$bool=1;
break;
case "=":
$sum=Suma($sum,$sign,$num);
$num=$sum;
$sign="S";
$bool=1;
break;
}
function Suma($num1,$_sign,$num2)
{
switch($_sign)
{
case "+":return $num1+$num2;break;
case "-":return $num1-$num2;break;
case "*":return $num1*$num2;break;
case "/":if($num2==0) return "Помилка"; return $num1/$num2;break;
case "%":return $num1%$num2;break;
case "S":return $num1;break;
default :
return $num2;
}
}
?>
<form name="form2" method="POST">
<input name='calculator' readonly value="<?php echo $num ?>"/>
<input type='HIDDEN' name="sum" value="<?php echo $sum ?>"/>
<input type='HIDDEN' name="bool" value="<?php echo $bool ?>"/>
<input type='HIDDEN' name="sign" value="<?php echo $sign ?>"/>
<br />
<input type='submit' name='button1' value='1'/>
<input type='submit' name='button1' value='2'/>
<input type='submit' name='button1' value='3'/>
<input type='submit' name='button1' style="width: 24px" value='+'/>
<br />
<input type='submit' name='button1' value='4'/>
<input type='submit' name='button1' value='5'/>
<input type='submit' name='button1' value='6'/>
<input type='submit' name='button1' style="width: 24px" value='-'/>
<br />
<input type='submit' name='button1' value='7'/>
<input type='submit' name='button1' value='8'/>
<input type='submit' name='button1' value='9'/>
<input type='submit' name='button1' style="width: 24px" value='*'/>
<br />
<input type='submit' name='button1' value='0'/>
<input type='submit' name='button1' value='.' style="width: 23px;margin-left: 1.3;"/>
<input type='submit' name='button1' value='%' style="width: 23px;margin-left: 5;"/>
<input type='submit' name='button1' value='/' style="width: 24px;margin-left: 2.5;"/>
<br />
<input type='submit' name='button1' value='=' style="width: 86px;margin-left: 2;"/>
<input type='submit' name='button1' value='c' style="width: 28px;"/>
</form>
</html>