Foros del Web » Programando para Internet » PHP »

(Consulta) No entiendo el return en una función

Estas en el tema de (Consulta) No entiendo el return en una función en el foro de PHP en Foros del Web. Buenas... No entiendo q papel juega el return en una funcion. Hice una funcion para insertar datos en la base de datos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 25/08/2011, 00:16
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
(Consulta) No entiendo el return en una función

Buenas...

No entiendo q papel juega el return en una funcion.
Hice una funcion para insertar datos en la base de datos:

Código PHP:
Ver original
  1. function insertDatos($dato1,$dato2,$dato3){
  2.  
  3. $insert = mysql_query("INSERT INTO tabla VALUES ($dato1,$dato2,$dato3)")
  4.              or die(mysql_error());
  5.  
  6. return $insert;
  7.  
  8. }

...eso funciona bien, pero si yo le quito el return $insert; tambien funciona bien.
No entiendo bien cual seria el sentido de colocar return.
Por definicion, se q es para retornar el valor q guarda la variable de la instruccion, pero en la practica no se cuando debo utilizarlo.

Esa es mi duda.
Gracias y saludos.
  #2 (permalink)  
Antiguo 25/08/2011, 01:10
 
Fecha de Ingreso: diciembre-2006
Ubicación: Peruvian
Mensajes: 142
Antigüedad: 17 años, 4 meses
Puntos: 7
Respuesta: (Consulta) No entiendo el return en una función

El valor de retrono de una funcion no siempre es obligatorio pero necesario en algunos casos,
Un ejemplo:
Código PHP:
Ver original
  1. //una funcion para sumar 2 numeros
  2. function suma($var1,$var2){
  3. return $var1+$var2;
  4. }
En el caso del codigo que muestras podrias usar el valor de retorno de la funcion mysql_query para saber si se realizo la consulta con exito o no y que la dicha funcion segun la documentacion de php devuelve true si la consulta se realizo con exito y false en caso contrario cuando se trata de un insert.
Código PHP:
Ver original
  1. $retorno = insertDatos($dato1,$dato2,$dato3);
  2. if($retorno ){
  3. echo 'Se inserto correctamente';
  4. }
  5. else{
  6. echo 'error';
  7. }
Espero haberte ayudado.
Te recomiendo leerte el capitulo de funciones del manual de php o de otro lenguaje que es lo mismo.
Un saludo!
  #3 (permalink)  
Antiguo 25/08/2011, 01:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: (Consulta) No entiendo el return en una función

Bueno tal vez leyendo el bendito manual de PHP te aclare esa duda:

Funciones: Devolver valores

Cita:
Si se llama desde una función, la sentencia return() inmediatamente termina la ejecución de la función actual, y retorna su argumento como el valor de la llamada a la función.
Puedes usarlo para válidar o retornar un valor de acuerdo a una condición. Entre tantos ejemplos que hay en el manual. Lo útil de esto es que si la función encuentra un return, ya no va a seguir con el resto de la función y retorna lo primero que le hayas indicado. Puedes retornar un valor y pasarlo para que lo procese otra función etc... Me parece es es algo muy interesante y necesario que hay que tener claro.

return
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 25/08/2011, 02:10
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: (Consulta) No entiendo el return en una función

Muchas gracias.
Estoy practicando funciones y lei mucho material pero el return es algo q no tenia en claro cuando utilizarlo.
En funciones para operaciones matematicas entiendo la funcion del return, pero en funciones como la q hice del insert no.
Ya me queda un poco mas claro.
Saludos.

Etiquetas: mysql, return, sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.