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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda con funcion dentro de funcion en un echo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con funcion dentro de funcion en un echo  (Leído 6,080 veces)
N4X

Desconectado Desconectado

Mensajes: 74



Ver Perfil WWW
Duda con funcion dentro de funcion en un echo
« en: 19 Enero 2010, 12:13 pm »

Bueno, ayer programando unas cosillas me saltó este "problema"

que en realidad no es un problema, solo es incomodo....

tengo una web que carga un index, y según parametros carga una web u otra...
bien, el caso es que la página que carga tiene una función principal y dentro otras funciones

el code es algo así:

index.php
Código
  1. <?php
  2. include_once('text.php');
  3. include_once('functions/basic.php');
  4.  
  5. if ($_GET['ac'] == 'news')
  6.   include_once('news.php');
  7.  
  8. head(); //las 3 mas abajo
  9. middle();
  10. foot();
  11. //no es exactamente así pero para que se entienda xD
  12. ?>
  13.  
<?php
functions/basic.php
Código
  1. function head() {
  2.      echo 'los heads y el inicio de una tabla';
  3. }
  4. function foot() {
  5.     echo 'el final de la tabla y el pie de pagina';
  6. } ?>
  7.  

news.php
Código
  1. <?php
  2.  
  3. function middle() {
  4.  
  5. echo 'la continuacion de la tabla'.funcion().'cierro celdas'; //lo raro esta aqui
  6. }
  7. function funcion {
  8. echo 'por ejemplo el contenido de la celda';
  9.  
  10. }
  11. ?>
  12.  

que sucede? bueno... funcion() al ser llamada mostraria "por ejemplo el contenido de la celda" encima de la tabla que se creó y la celda donde deberia ir se veria mal...

como lo arreglo?

Código
  1. echo 'la continuacion de la tabla'; funcion() ; echo 'cierro celdas'; //lo raro esta aqui
  2.  

es eficaz pero es mas molesto que poner un par de concatenaciones... alguien sabe porqué sucede esto? (si pongo un return y no un echo sucede lo mismo...

dejo un par de imagenes:
asi está mal:http://img130.imageshack.us/img130/9913/funcionesmal.jpg
así esta bien:http://img63.imageshack.us/img63/3640/funcionesbien.jpg

saludos
nax


En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #1 en: 20 Enero 2010, 03:06 am »

proba asi:
Código
  1. function funcion() {
  2. return 'por ejemplo el contenido de la celda';
  3. }


En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #2 en: 20 Enero 2010, 04:06 am »

si, con el return no debería tener problemas, aunque el menciona que le va igual.

saludos!!
En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #3 en: 20 Enero 2010, 04:14 am »

entonces proba como te dije antes y esto mas:
Código
  1. echo 'la continuacion de la tabla';
  2. echo funcion();
  3. echo 'cierro celdas'; //lo raro no esta mas aqui :p
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #4 en: 21 Enero 2010, 00:29 am »

si, con el return no debería tener problemas, aunque el menciona que le va igual.

saludos!!
La función return, retorna un valor, mayormente se usa junto a funciones, pero en este caso no se quiere retornar un valor, si no que solo imprimirlo, las subrutinas se pueden usar para crear funciones o crear sub codigos que estan dentro del codigo principal.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #5 en: 21 Enero 2010, 00:44 am »

es verdad, justo ahora estoy usando una bermuda de jean!

que flasheaste yoya?? jajajaj
a el le pasaban dos cosas:
1. si en la funcion la terminaba con
Código:
echo "cadena";

Código
  1. <?php
  2.  
  3. function middle() {
  4.  
  5. echo 'la continuacion de la tabla'.funcion().'cierro celdas';
  6. //aca iba a haber error, porq la cadena "cierro celdas" queda "descolgada",
  7.  
  8. }
  9. function funcion {
  10. echo 'por ejemplo el contenido de la celda';
  11.  
  12. }
  13. echo 'la continuacion de la tabla'; funcion() ; echo 'cierro celdas'; //aca no pasaria nada, porq no interviene con las otras dos funciones echo
  14. ?>
  15.  


ahora:
2. si terminaba la funcion con return iba a pasar al revez,

 asi que pruebemi codigo, me gustaria que respondas! un saludo grande
En línea

N4X

Desconectado Desconectado

Mensajes: 74



Ver Perfil WWW
Re: Duda con funcion dentro de funcion en un echo
« Respuesta #6 en: 21 Enero 2010, 18:12 pm »

con return funciona perfectamente...

debió ser un segundo fallo y no lo que yo creia en un principio...

luego depurando me di cuenta que el error no estaba ahí

perdonen la molestia y la tardansa de contestar  :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines