Funcion en php

A

Ocupo la ayuda de como encontrar el error en este codigo de una mini calculadora

http://imgur.com/wA29KXv

http://imgur.com/69GOW7O

Amazon

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.

1 1 respuesta
Sorii34

que follon de llaves tiene en la segunda captura.
Declaras funciones pero nos las llamas/ejecutas

Ultrajex

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.

A

#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.

1 respuesta
Amazon

#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

1 1 respuesta
A

Gracias voy a probar haber que tal.

A

#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

1 respuesta
W0rd

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

1
A

Los declare y sigue dando el mismo error.

1 respuesta
Amazon

#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.

1 1 respuesta
AiTale

#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

A

#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();

?>
1 respuesta
Amazon

#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)

1 1 respuesta
A

#14 Ok xD verificare el código.

Kr4n3oK

if(isset($_POST['div'])){
division($p,$s);
}else if (isset($_POST['resta'])) {
resta($p,$s);
}


function division(){}
function resta(){}
function()....

Amazon

Si todavía no has comprendido el asunto, cortesía de MisKo te dejo este tutorial por aquí

NSFW
1
MisKo

No soy la del vídeo, abstenerse MPs ;)

hache_

Cuando entiendas lo que te han explicado busca sobre el patrón Command, que para una calculadora viene perfecto :)

Usuarios habituales