elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Salidas de una función
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Salidas de una función  (Leído 1,979 veces)
ZHOSS-9

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Salidas de una función
« en: 22 Diciembre 2011, 01:06 am »

Hay algo que siempre me ha llevado de cabeza y no entiendo. Yo he hecho funciones, sencillas.. pero funciones al fin y al cabo. El problema viene en que no sé cuando le tengo que asignar una salida, es decir:

Código
  1. function holaMundo() {
  2.        echo "Hola mundo";
  3. }

Ahí, el contenido del parentesis está vacio, y el resultado será el echo..

Sin embargo, aquí un ejemplo más complejo:

Código
  1. function fetch_replaced_session_url($url)
  2. {
  3. global $yrya;
  4.  
  5. $url = addslashes($url);
  6. $url = fetch_removed_sessionhash($url);
  7.  
  8. if ($yrya->session->vars['sessionurl'] != '')
  9. {
  10. if (strpos($url, '?') !== false)
  11. {
  12. $url .= '&' . $yrya->session->vars['sessionurl'];
  13. }
  14. else
  15. {
  16. $url .= '?' . $yrya->session->vars['sessionurl'];
  17. }
  18. }
  19.  
  20. return $url;
  21. }

¿Por qué se pide retornar $url? ¿Es decir, por qué es más útil retornarlo.. a qué se debe, qué hace? ¿No sirve igual guardarlo en una variable o algo parecido?

Un saludo y gracias por adelantado.


En línea

dark_sargon


Desconectado Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Salidas de una función
« Respuesta #1 en: 22 Diciembre 2011, 17:27 pm »

Código
  1. <?php
  2.  
  3.  echo "El resultado de sumar 5 y 6 es ";
  4.  echo sumador(5,6); //Llamada a la función
  5.  
  6.  function sumador($num1,$num2){
  7.    $resultado = $num1 + $num2;
  8.    return $resultado;
  9.  }
  10.  
  11. ?>

Con return, se hace la suma y la misma llamada a la función toma el valor del resultado. Sin el return solo se hace la suma.


En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
ZHOSS-9

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Salidas de una función
« Respuesta #2 en: 22 Diciembre 2011, 20:01 pm »

Pero sigo sin pillarlo.. retorna el valor de la suma, vale.
Aun así si pusieras

Código
  1.  function sumador(){
  2.    $num1 = 5;
  3.    $num2 = 6;
  4.    $resultado = $num1 + $num2;
  5. }
  6.  
  7.   sumador();
  8.   echo $resultado;

¿no haría lo mismo? ¿o me estoy equivocando?
Porque el resultado ya lo estás guardando en una variable, entonces el sentido de tener que guardarlo en el retorno de la función es lo que  no entiendo.. ¿daría igual hacerlo de las dos formas o guardarlo ahí tiene ventajas?
En línea

dark_sargon


Desconectado Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Salidas de una función
« Respuesta #3 en: 22 Diciembre 2011, 21:47 pm »

No es correcto ya que la variable $resultado no puede ser usada por fuera de la función sumador(), es decir la variable $resultado de la función es diferente a la variable $resultado fuera de la función.

Otra cosa es que si asignas los valores de $num1 y $num2 dentro de la función, esta quedará inservible para otros valores diferentes a 5 y 6.

Suponiendo que tu script debe hacer 100 sumas, del modo que lo estás haciendo, tendrías que hacer 100 funciones mientras que usando bien las características de una función, bastaría con una sola.

Aclaro que sería posible hacerlo con el código que haz publicado pero debes hacer global la variable $resulado para poder usarla afuera:
Código
  1. <?php
  2.  
  3. function sumador(){
  4.   $num1 = 5;
  5.   $num2 = 6;
  6.   global $resultado;
  7.   $resultado = $num1 + $num2;
  8. }
  9.  
  10.  sumador();
  11.  echo $resultado;
  12.  
  13. ?>

Como te digo, sería mejor dejar variables las entradas de la función:
Código
  1. <?php
  2.  
  3. function sumador($num1, $num2){
  4.   return $resultado = $num1 + $num2;
  5. }
  6.  
  7.  echo sumador(5,6);
  8.  
  9. ?>
En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
ZHOSS-9

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Salidas de una función
« Respuesta #4 en: 22 Diciembre 2011, 22:33 pm »

Ahora edito este mensaje, que me he confundido de tema y me creia que estaba respndiendo a otro !
Voy a probar lo que has dicho dark, pero me has ayudado mucho! Muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Controlar las entradas y salidas
Programación Visual Basic
erick185 1 1,219 Último mensaje 19 Enero 2006, 14:59 pm
por Kizar
Salidas ingenieria informatica
Foro Libre
CICOLO_111234 8 6,972 Último mensaje 21 Mayo 2010, 01:36 am
por andres_5
Salidas HDMI
Foro Libre
Ahm_Shere 2 2,449 Último mensaje 29 Septiembre 2010, 21:17 pm
por dantemc
un HDD dos salidas usb
Hardware
xkiz ™ 3 3,683 Último mensaje 31 Agosto 2013, 22:49 pm
por imoen
Tener 2 salidas en lugar de 1 en mi modem. « 1 2 »
Redes
footer 14 5,307 Último mensaje 3 Abril 2017, 19:18 pm
por footer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines