foreach Schleife echo

Nambot

Mitglied
Hallo!
Ich habe zur Zeit folgendes Problem: Ich versuche eine foreach Schleife in einem echo Befehl zu platzieren. Hier mal ein Beispielcode:
PHP:
echo "text ".foreach($blub as $bla): ... ." noch mehr text";
Der funktioniert natürlich noch nicht. PHP beschwert sich aufgrund des "unexpected T_FOREACH". Meine Frage ist, ob es für die foreach Schleife, z.B. auch eine Kurzschreibweise wie beim if gibt ((if) ? (then) : (else)), sodass man diese innerhalb eines echo's verwenden kann?
 
Nein, aber warum willst du es auch unbedingt so machen?
Es ist doch völlig unübersichtlich?

PHP:
<?php
echo "xyz";
foreach($foo as $bar)
{
  echo $bar;
}
echo "zxy";
?>

Manchmal sollte man lieber ein paar Zeilen mehr benutzen, zur Unterstützung der Struktur.
 
Das Problem ist, dass ich versuche ein Template zu "parsen", dabei aber eval umgehen will und deswegen das ganze mit echo probieren wollte. Das einzige was noch nicht funktioniert sind die foreach Schleifen.
 
hm also ich würde es mit einer funktion machen denk ich...

PHP:
function for_each($foo) {
    foreach($foo as $bar)
    {
        echo $bar;
    } 
}

echo 'text '.for_each($foo).' weiter Text...';


Oder eine ganze Klasse um verschiedene Ausgabeoptionen zur Verfügung zu haben oder auch verschiedene Schleifentypen.
Hab des Beispiel jetzt nich getestet. Kann sein das es mit dem echobefehl innerhalb der funktion n Problem gibt dann mus man sich was anderes überlegen wie man den Inhalt der Funktion am bessten übergibt und ausgibt.
 
Ja gibt es, aber wenn du es wirklich so verschachteln willst, sollte dies hier funktionieren:

PHP:
function for_each($foo) {
  $string = '';
  foreach($foo as $bar)
  {
    $string .= $bar;
  } 
  return $string;
}

echo 'text '.for_each($foo).' weiter Text...';

So sollte es funktionieren.
 
Zurück