View
3
Download
2
Embed Size (px)
Citation preview
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 desaparición, ya que me estaba
recuperando de una cirugía 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 matemática que se quiera realizar:
<form name="mat" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
<input type="text" name="a" />
<select name="opr">
<option value="">Operador</option>
<option value="+">Sumar</option>
<option value="-">Restar</option>
<option value="*">Multiplicar</option>
<option value="/">Dividir</option>
</select>
<input type="text" name="b" />
<input type="submit" name="ej" value="Ejecutar" />
</form>
LA E JECUCIÓN DEL SCRIPT CON PHP:
Al principio pensé que seria de lo mas sencillo y fácil hacer esta pequeña
aplicación, pero choque con algo inesperado y que me resulto nuevo.
El punto es que tuve que crear una función que me retornara la operación
matemática dependiendo del operador enviado por el formulario, ya que el
operador me lo enviaba como un string y si por ejemplo quería calcular 2 +
2, eso era lo que me imprimía en lugar de 4, pero mejor ya entramos al
código:<?php
// comprobamos si se han enviado los datos
if(isset($_POST['ej']) && $_POST['ej'] == 'Ejecutar') {
// comprobamos si no hay campos vacíos
if(!empty($_POST['a']) && !empty($_POST['b']) && !empty($_POST['opr'])) {
// ahora, verificamos si son solo digitos
if(ctype_digit($_POST['a']) && ctype_digit($_POST['b'])) {
// creamos y damos valor a las variables
// con que vamos a trabajar
$a = $_POST['a'];
$b = $_POST['b'];
$opr = $_POST['opr'];
// aqui la funcion que
// retornara la operacion matematica
function operar($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;
}
// imprimimos el resultado de la operación
echo "$a $opr $b = ". operar($a, $b, $opr);
} else {
// ERROR en caso de datos no válidos
echo "a y b tienen que ser numeros";
}
} else {
// ERROR en caso de campos vacíos
echo "No puede enviar campos vacios";
}
}
?>