if/then/else-Kurzform

Chaosengel_Gabriel

Erfahrenes Mitglied
Hey Leutz...
Ich hab mal wieder nen Problem... Unzwar lese ich Profil Daten aus und will dann jede Angabe mit if/then/else prüfen ob sie existiert...
Um keine unnötig gigantischen if/then-Knstrukte zu verwenden versuche ich es so:
(isset($row['Angabe']) AND $row['Angabe'] != '') ? //Zeigen der Angabe : //Leere Spalte

Das Problem daran: Wie echo ich die Daten

Wenn ich schreibe
(isset(...) AND ...!='') ? echo '' : echo''

Sagt mir der Server nur unexpected T_ECHO...

der reicht es, wenn ich die Daten nur in Hochkommata setze ohne echo?
 
Hallo!
Ich wollte fragen, ob man diese if auch schachteln kann.

Z.B.
PHP:
($person->status)==1? 'status1':($person->status)==2? 'status2':'kein Praktikum' );

da ich die Status Zahlen in sinnvollen Text umwandeln möchte.

Gruß Urmel
 
Zuletzt bearbeitet von einem Moderator:
Hallo!

Ich wollte fragen, ob man diese if auch schachteln kann.
Ja, allerdings hast Du eine Klammer zuwenig.
Beispiel für if/elseif/else:
PHP:
<?php
$person->status= 1;

echo  ($person->status)==1? 'status1' : ( ($person->status)==2? 'status2' : 'kein Praktikum' );
?>
Ich würde es aber nicht übertreiben, weil es sonst einfach zu unübersichtlich wird. ;)

Gruss Dr Dau
 
Vielen Dank!

Klappt wunderbar 6fach Verschachtelung ;-)

PHP:
($person->status)==1? 'status1' :
(($person->status)==2? 'status2' :
(($person->status)==3? 'status3':
(($person->status)==4? 'Status4':
(($person->status)==5? 'status5':
(($person->status)==6? 'status6': 'kein Praktikum' ))))));
Nochmals Danke und einen schönen Tag noch!
 
Zuletzt bearbeitet von einem Moderator:
Ja, es klappt. Aber:
a) schwer zu lesen
b) in dieser Anwendung überflüssig da du besser switch() nimmst.

PHP:
switch($person->status){
	case 1: 
		$status = 'status1'; 
		break;
	case 2: $status = 'status2'; break;	//Mann kann es für so kleine Zeilen auch auf eine Zeile zusammenziehen
    //Alle anderen hier ergänzen
	default:
		$status = 'kein Praktikum';
}
 
Ja, es klappt. Aber:
a) schwer zu lesen
b) in dieser Anwendung überflüssig da du besser switch() nimmst.

PHP:
switch($person->status){
	case 1: 
		$status = 'status1'; 
		break;
	case 2: $status = 'status2'; break;	//Mann kann es für so kleine Zeilen auch auf eine Zeile zusammenziehen
    //Alle anderen hier ergänzen
	default:
		$status = 'kein Praktikum';
}
Man könnte es natürlich (vorrausgesetzt Fall 4 war ein Tippfehler), gleich so machen:
PHP:
$status = '';
switch ($person->status) {
  case 6:
    $status = ': kein Praktikum';

  default: 
    $status = 'status' + $person->status + $status;
}
Gruß
 
Hab ich auch angedacht. Aber ich gleube der Text 'status1' war nur ein Beispiel. Ich kann mir nicht vorstellen dass dies der Name eines Status sein soll.

deepthroat, du bist bereits mit der unleserlichen Schreibart der Mehrfachverschachtelung reingefallen *g*. Status 6 heisst status6. 'kein Praktikum' ist im else-Teil der Status6-Abfrage...
 
Zurück