Foros del Web » Programando para Internet » PHP »

Puedo imprimir con ECHO y no guardar en variable

Estas en el tema de Puedo imprimir con ECHO y no guardar en variable en el foro de PHP en Foros del Web. Buenas Es un asunto un poco curioso que no se a que puede ser debido. No entiendo la diferencia entre usar los caracteres . y ...
  #1 (permalink)  
Antiguo 11/12/2009, 17:31
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Puedo imprimir con ECHO y no guardar en variable

Buenas

Es un asunto un poco curioso que no se a que puede ser debido.
No entiendo la diferencia entre usar los caracteres . y , para concatenar cadenas, y bueno, el código que tengo extraido de un foro es este:

Código PHP:
echo '<ul>';
foreach (
$posts as $post){
  echo 
'<li>
  <a href="'
$post['href'], '"  target="_blank">'$post['subject'], '</a> '$txt[525], ' ('$post['poster']['link'], ')'$post['new'] ? '' '<a href="' $scripturl '?topic=' $post['topic'] . '.msg' $post['new_from'] . ';topicseen#new" target="_blank"><img src="' $settings['images_url'] . '/' $context['user']['language'] . '/new.gif" alt="' $txt[302] . '" border="0" /></a>''
  </li>'
;
}
echo 
'</ul>'
Si lo pongo de ese modo, no hay problema, se me crea una lista con varios resultados y todo va bien.

Si en vez de imprimirlo directamente con ECHO intento guardarlo en una variable, ésta no contiene nada, es más, creo que ni entra en el foreach.

Hablo de hacer esto:

Código PHP:
$var='<ul>';
foreach (
$posts as $post){
  
$var.='<li>
  <a href="'
.$post['href'].'"  target="_blank">'.$post['subject'].'</a> '.$txt[525].' ('.$post['poster']['link'].')
                                                            '
.$post['new'] ? '' '<a href="' $scripturl '?topic=' $post['topic'] . '.msg' $post['new_from'] . ';topicseen#new" target="_blank"><img src="' $settings['images_url'] . '/' $context['user']['language'] . '/new.gif" alt="' $txt[302] . '" border="0" /></a>
   </li>'
;
}
                                                        
$var.='</ul>'
Como se puede apreciar, he cambiado las comas , por puntos . para concatenar las cadenas en el segundo caso, porque de lo contrario PHP me soltaba un error al encontrar el caracter inesperado ,


¿Qué puede estar pasando?

¿por qué el cambiar unas comas por unos puntos hace que deje de funcionar como debería?

No se si me he explicado suficientemente bien, si no es así, decídmelo.
Gracias.
  #2 (permalink)  
Antiguo 11/12/2009, 17:43
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Puedo imprimir con ECHO y no guardar en variable

Que error te tira?? En el 1ro haces un echo de todo y en el 2do guardas todo en una variable... Despues la imprimis esa variable?
  #3 (permalink)  
Antiguo 11/12/2009, 17:51
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Respuesta: Puedo imprimir con ECHO y no guardar en variable

Hacerlo así no es la mejor forma, de hecho es menos rápida, aunque con pocos datos no se nota.
Te muestro como lo hago yo ( recomendado hace muchos años ya, por masters de este foro ).


Código PHP:

<ul>
<?php
    
foreach ($posts as $post)
    {
?>
    <li>
        <a href="<?php echo $post['href'];?>"  target="_blank"><?php echo $post['subject'];?></a>
    </li>
<?php
    
}
?>
</ul>
  #4 (permalink)  
Antiguo 12/12/2009, 00:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Puedo imprimir con ECHO y no guardar en variable

Con echo puedes imprimir varios parametros (cadenas, variables, etc.) o cadenas concatenadas:

Parametros separados por comas, suponiendo que echo fuera una funcion:
echo($var1, $var2, $var3);
Como echo no es una funcion, DEBES omitir los parentesis
echo $var1, $var2, $var3;

Mas info en manual de PHP para echo

$var = $var1, $var2, $var3;

La linea anterior te da error porque en una asignacion no se utilizan parametros, solo valores y operadores (matematicos, de cadena,... me falta alguno???).
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 12/12/2009, 03:25
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Respuesta: Puedo imprimir con ECHO y no guardar en variable

Gracias por las respuestas pero lo que intento es precisamente asignar los valores a una variable, no imprimirlos por pantalla.

Ya he entendido lo de las comas en el echo, pero claro, para pasarlo a una variable no puedo usar comas y utilizo puntos para concatenar cadenas con valores de variable como siempre he hecho.


Tras darle algunas vueltas he visto el fallo y he conseguido solucionarlo.
El fallo estaba en el IF abreviado que había en una cadena.

Gracias.
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 16:36.