if abfrage innerhalb echo

AHelfer

Mitglied
Guten Tag alle zusammen
Da ich mal wieder ein völliger Blackout habe und ned mehr weiterkomme, ned weiss ob das nicht möglich ist oder ob ich einen Fehler mache frage ich mal wieder hier nach.


also eigentlich ganz einfach.
Ich will blos eine if Abfrage innerhalb eines echo Befehls hinkriegen welcher durch ein vorhergehender if befehl auslöst wurde.

Beispiel:
Zuerst wird getestet ob der Wert eines von 2 sachen ist.. und wenn ja welches genau gesetzt wurde (die Anzahl verschiedene Werte kann auch mehr als 2 sein)

Hier mal mein kleiner beispielcode
welcher nicht funktioniert und den Fehler:
"Parse error: syntax error, unexpected T_IF in /home/httpd/vhosts/seite.com/httpdocs/back/iftest.php on line 19"
ausgibt.


PHP:
<?php
$test ='test1';
?>

<html>
<body>
<table>
<tr>
<td> TEST </td>
</tr>
<tr>
<td>
	<?php
		if ($test=='test1' or $test=='test2')
		{echo '
		<tr>
		<td>'
		.
		if ($test=='test1') {echo 'test1 <br />';} else {echo 'nicht test1 <br />';}
		if ($test=='test2') {echo 'test2 <br />';} else {echo 'nicht test2 <br />';}
		.
		'</td>
		</tr>
		';}
	?>
</td>
</tr>
</table>
</bod>
</html>

also.. wie gesagt ich sitze hier mit einem völligen Blackout.. bin froh um jeden kleinen hinweiss oder der druchsage dass das ned möglich ist.
 
Ganz einfach:
PHP:
echo (if-Abfrage) ? Wenn true : Sonst ;
Wenn es sowohl bei then und else nur die Textausgabe sein soll, dann wie folgt:
PHP:
echo ($a=='x') ? 'Ist gleich' : 'Is nich gleich';

Alles klar!? ;)

[EDIT]

Ich hab da mit den gleichen Ideen und Versuchen dran gesessen, wie du sie in deinem Skript oben hast ^^
Bis mir hier jemand gesagt hat, wie es geht *rofl*
 
Nicht getestet, sollte aber funkionieren.
PHP:
<?php
        if ($test=='test1' or $test=='test2') {
          echo '<tr><td>';
          
            if ($test=='test1') {
              echo 'test1 <br />';
              } else {
                  echo 'nicht test1 <br />';
                  }
                  
            if ($test=='test2') {
              echo 'test2 <br />';
              } else {
                  echo 'nicht test2 <br />';
                  }
            
          echo '</td></tr>';
          }
    ?>
Keine Ahnung was du da mit den ganzen Punkten versuchst ;)
 
Hi,

andere Alternative (ungetestet):
PHP:
<?php
if ($test=='test1' or $test=='test2') {
?>
<tr>
  <td>
  <?php
    if ($test=='test1') {
      echo 'test1 <br />';
    } else {
      echo 'nicht test1 <br />';
    }

    if ($test=='test2') {
      echo 'test2 <br />';
    } else {
      echo 'nicht test2 <br />';
    }
  ?>
  </td>
</tr>
<?php 
}
?>

Grüße, D.

Edit: Zu langsam...
 
D. das dürfte so nicht ganz hinhauen...
Würde es eher so machen:
PHP:
if ($test=='test1' or $test=='test2') {
?>
<tr>
  <td>
  <?php
    echo ($test=='test1') ? 'test1 <br />' : 'nicht test1 <br />';
    echo  ($test=='test2') ? 'test2 <br />' : 'nicht test2 <br />';
  ?>
  </td>
</tr>
<?php 
}
 
Wie man das schreibt ist ja dann eine Sache des eigenen Programmierstil's, ich mag solche Kurzschreibweisen z.B. garnicht. :)
 
Hi Gabriel,

das müsste meines Wissens nach schon funktionieren - aber ich bin ja was PHP angeht, nicht unbedingt ein Experte und lasse mich gerne eines besseren belehren. :)

Allerdings bin ich (wie Loomes) auch kein großer Freund dieser Kurzschreibweise und benutze sie nur, wenn es wirklich Sinn macht. Und das macht eine Ausgabefunktion meiner Meinung nach nur unübersichtlich... Ist allerdings Geschmackssache. Praktisch dürfte dein Code aber genau den gleichen Effekt haben, wie der meinige. ;)

Grüße, D.
 
Ich kann auch net genau sagen, obs geht oda ncih...
Benutz immer die Kurze schreibweise...

Haste recht Loomes, liegt im eigenen Ermessen, aber bei 600 Zeilen Code in einer File macht sich die Byte Ersparnis der kurzen Version bemerkbar ^^
 
Hi,

aber bei 600 Zeilen Code in einer File macht sich die Byte Ersparnis der kurzen Version bemerkbar
da hast du Recht. Du könntest aber zusätzlich noch 600 bis 1000 Byte sparen, wenn du alles in eine Zeile schreibst und die Einrückung weg lässt. Whitespaces, Kommentare und Zeilenumbrüche nehmen nur unnötig Platz weg und Lesbarkeit wird eh überschätzt. Der User kriegt den Code ja eh nicht zu sehen. :p

*scnr*, D.

P.S.: Sorry fürs Offtopic.
 
*rofl*
Ja da hast recht ^^
Sollte man aber im eigenen Interesse erst machen, wenn der Code fertig ist und man nichts mehr daran ändern muss, sonst wirds echt übel xD

[EDIT]

Mein HTML Output is schon schlimm genug so linear xD
Das meiste wird per PHP geechot und da is mir dat zu umständlich imma \n und so einzusetzen^^
Zum Glück erleichtert der DOM-Inspektor vom FireFox das lesen des OutPut ^^
 
Zurück