Ocupo la ayuda de como encontrar el error en este codigo de una mini calculadora
Estás comprobando el botón que estás pulsando y si existe lo que haces es declarar la función, pero no la llamas.
Después de la declaración function suma($p,$s){}
tienes que llamarla para que se ejecute.
No vengo a decir nada nuevo porque es lo que comentan ya los compañeros de que no llamas a ninguna función, solo las defines, lo que sí es... Dios santo, tabula bien esas llaves por la mama.
#2 <html>
<body>
<?php
if(isset($_POST['suma']))
function suma($p,$s){
$t=$p+$s;
return $t;
suma($p+s)
}
if(isset($_POST['resta']))
function resta($p,$s){
$t=$p-$s;
return $t;
}
if(isset($_POST['mult']))
function multiplicacion($p,$s){
$t=$p*$s;
return $t;
}
if(isset($_POST['div']))
function division($p,$s){
$t=$p/$s;
return $t;
}
?>
</body>
</html>
Y como hago para llamarla xD?Segun con el return se devolvia el valor.
#5 Sí, return devuelve el valor que le pongas, en esos casos, $t
, pero lo devuelve cuando llames a la función, repito que ahí lo que haces es declararla.
Para saber cómo hacerlo aquí tienes un poco de lectura: https://www.w3schools.com/php/php_functions.asp
#6 Hice lo siguiente:
<html>
<body>
<?php
if(isset($_POST['suma']))
function suma($p,$s){
$t=$p+$s;
return $t;
suma();
}
if(isset($_POST['resta']))
function resta($p,$s){
$t=$p-$s;
return $t;
resta();
}
if(isset($_POST['mult']))
function multiplicacion($p,$s){
$t=$p*$s;
return $t;
multiplicacion();
}
if(isset($_POST['div']))
function division($p,$s){
$t=$p/$s;
return $t;
division();
}
?>
</body>
</html>
y me da error
http://imgur.com/eePaHNX
Donde creas $p y $s ??
Sugerencias
Separa todo lo posible el html del php, puedes poner el php en el inicio y dejar el final para el html.
Usa nombres de variables significativos, $p ???
Tabula correctamente
#8 Ahora sí estás llamando a las funciones, pero desde dentro de las mismas!
Es decir, ahora mismo las funciones se ejecutan 0 veces, y si dejas la llamada dentro de la definición de la misma, se ejecutarían recursivamente hasta el infinito (por lo que petaría al llenarse la memoria)
Leete bien todo lo que te puse antes que ahí te explica cómo declararlas y llamarlas correctamente.
#10 Tío, basta. Ahora estás llamando a las funciones dentro de las propias declaraciones, nunca se van a ejecutar. Llámalas desde fuera... y busca un ejemplo sencillo en internet, aquí lo de hacer deberes a la gente se lleva fatal xD
#11 Así:
<?php
$p=0;
$s=0;
if(isset($_POST['suma']))
function suma($p,$s){
$t=$p+$s;
return $t;
}
suma();
if(isset($_POST['resta']))
function resta($p,$s){
$t=$p-$s;
return $t;
}
resta();
if(isset($_POST['mult']))
function multiplicacion($p,$s){
$t=$p*$s;
return $t;
}
multiplicacion();
if(isset($_POST['div']))
function division($p,$s){
$t=$p/$s;
return $t;
}
division();
?>
#13 deja de tantear a ciegas, piénsa un poco lo que quieres hacer y lee tu código, verás claramente que lo que quieres hacer no es lo que estás haciendo.
Y utiliza llaves siempre en los ifs, eso te ayudará a ver mejor posibles fallos (aunque el mayor fallo no está en eso principalmente xD)