Sunteți pe pagina 1din 4

Como hacer una calculadora

con PHP (Ejercicio)


A veces me pongo algo ocioso y como llevaba casi un mes en mi casa sin
trabajar, y he aqu la causa de mi desaparicin, ya que me estaba
recuperando de una ciruga refractiva, por eso escrib muy poco entre
marzo y abril de este 2008, pues me puse a entretenerme en algo y me
surgi la idea de hacer una calculadora usando PHP y de paso us este
script como ejercicio para un curso de PHP que estoy impartiendo.

EL FORMULARIO:

Lo primero es hacer un formulario (puro HTML) que usaremos para enviar


los datos y el operador, segun la cuenta matemtica que se quiera realizar:
<formname="mat"method="post"action="<?php$_SERVER['PHP_SELF'];?>">
<inputtype="text"name="a"/>
<selectname="opr">
<optionvalue="">Operador</option>
<optionvalue="+">Sumar</option>
<optionvalue="">Restar</option>
<optionvalue="*">Multiplicar</option>
<optionvalue="/">Dividir</option>
</select>

<inputtype="text"name="b"/>
<inputtype="submit"name="ej"value="Ejecutar"/>
</form>

LA EJECUCIN DEL SCRIPT CON PHP:

Al principio pens que seria de lo mas sencillo y fcil hacer esta pequea
aplicacin, pero choque con algo inesperado y que me resulto nuevo.
El punto es que tuve que crear una funcin que me retornara la operacin
matemtica dependiendo del operador enviado por el formulario, ya que el
operador me lo enviaba como un string y si por ejemplo quera calcular 2 +
2, eso era lo que me imprima en lugar de 4, pero mejor ya entramos al
cdigo:
<?php
//comprobamossisehanenviadolosdatos
if(isset($_POST['ej'])&&$_POST['ej']=='Ejecutar'){
//comprobamossinohaycamposvacos
if(!empty($_POST['a'])&&!empty($_POST['b'])&&!empty($_POST['opr'])){
//ahora,verificamossisonsolodigitos
if(ctype_digit($_POST['a'])&&ctype_digit($_POST['b'])){
//creamosydamosvaloralasvariables
//conquevamosatrabajar
$a=$_POST['a'];
$b=$_POST['b'];
$opr=$_POST['opr'];

//aquilafuncionque
//retornaralaoperacionmatematica
functionoperar($a,$b,$opr){
switch($opr){
case"+":
$result=$a+$b;
break;
case"":
$result=$a$b;
break;
case"*":
$result=$a*$b;
break;
case"/":
$result=$a/$b;
break;
}
return$result;
}
//imprimimoselresultadodelaoperacin
echo"$a$opr$b=".operar($a,$b,$opr);

}else{
//ERRORencasodedatosnovlidos
echo"aybtienenquesernumeros";
}
}else{
//ERRORencasodecamposvacos
echo"Nopuedeenviarcamposvacios";
}
}
?>

S-ar putea să vă placă și