Me parece que sigues sin entender.
Repito: no puedes mezclar lógica dentro de una cadena, o como si estuvieras concatenando, son expresiones por separado la cadena de texto y la lógica.
Observa bien:
Código PHP:
Ver original// MAL
$str = '<tag>'
$str .= while (/* ... */) {
$str .= $value;
}
// BIEN
$str = '<tag>';
while (/* ... */) {
$str .= $value;
}
Observa bien las diferencias, no es posible ejecutar el código como lo haces, reflexiona al respecto.