Está en la página 1de 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 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>

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. 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. eso era lo que me imprimía en lugar de 4. $opr = $_POST['opr']. ya que el operador me lo enviaba como un string y si por ejemplo quería calcular 2 + 2. $b = $_POST['b']. 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'].<input type="text" name="b" /> <input type="submit" name="ej" value="Ejecutar" /> </form> LA EJECUCIÓN DEL SCRIPT CON PHP: Al principio pensé que seria de lo mas sencillo y fácil hacer esta pequeña aplicación.

break. case "*": $result = $a * $b. case "­": $result = $a ­ $b. break. break.// aqui la funcion que // retornara la operacion matematica function operar($a. $b. case "/": $result = $a / $b. . $opr) { switch($opr) { case "+": $result = $a + $b. operar($a. } return $result. $b. } // imprimimos el resultado de la operación echo "$a $opr $b = ". break. $opr).

} } else { // ERROR en caso de campos vacíos echo "No puede enviar campos vacios".} else { // ERROR en caso de datos no válidos echo "a y b tienen que ser numeros". } } ?> .