Duda con funcion dentro de funcion en un echo

Iniciado por N4X, 19 Enero 2010, 12:13 PM

0 Miembros y 1 Visitante están viendo este tema.

N4X

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 (php) [Seleccionar]

<?php
include_once('text.php');
include_once(
'functions/basic.php');

if (
$_GET['ac'] == 'news')
   include_once(
'news.php');

head(); //las 3 mas abajo
middle();
foot();
//no es exactamente así pero para que se entienda xD
?>


<?php
functions/basic.php
Código (php) [Seleccionar]

function head() {
      echo 'los heads y el inicio de una tabla';
}
function foot() {
     echo 'el final de la tabla y el pie de pagina';
} ?>


news.php
Código (php) [Seleccionar]

<?php

function middle() {

echo 
'la continuacion de la tabla'.funcion().'cierro celdas'//lo raro esta aqui
}
function 
funcion {
 echo 
'por ejemplo el contenido de la celda';

}
?>



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 (php) [Seleccionar]

echo 'la continuacion de la tabla'; funcion() ; echo 'cierro celdas'; //lo raro esta aqui


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

Castg!

proba asi:
Código (php) [Seleccionar]
function funcion() {
return 'por ejemplo el contenido de la celda';
}

cassiani

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

saludos!!

Castg!

entonces proba como te dije antes y esto mas:
Código (php) [Seleccionar]
echo 'la continuacion de la tabla';
echo funcion();
echo 'cierro celdas'; //lo raro no esta mas aqui :p

~ Yoya ~

Cita de: cΔssiΔni en 20 Enero 2010, 04:06 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.
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!

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
echo "cadena";

Código (php) [Seleccionar]
<?php
 
function middle() {
 
echo 
'la continuacion de la tabla'.funcion().'cierro celdas'
//aca iba a haber error, porq la cadena "cierro celdas" queda "descolgada",

}
function 
funcion {
 echo 
'por ejemplo el contenido de la celda';
 
}
echo 
'la continuacion de la tabla'funcion() ; echo 'cierro celdas'//aca no pasaria nada, porq no interviene con las otras dos funciones echo
?>




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

asi que pruebemi codigo, me gustaria que respondas! un saludo grande

N4X

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