PHP if or else, else Problem

Kirzz

Aktives Mitglied
Thread Starter
Registriert
14.11.2009
Beiträge
1.251
Ich kenne mich nicht mit PHP aus, habe daher eine Aufgabe die ich nicht gelöst bekomme:

<hgroup>
<h1><?=$page->headline?></h1>
<?php if ($page->subheadline): ?>
<h2><?=$page->subheadline?></h2>
<?php endif; ?>
</hgroup>

Wenn 'subheadline' leer ist, wird <h2> nicht ausgegeben, soweit ganz gut. Eigentlich ist dann aber auch die <hgroup> überflüssig, weil nur noch <h1> darin enthalten ist, keine Gruppe mit einem Element.

Was fehlt ist ein 'else', welches bei fehlendem Input in Feld <?php if ($page->subheadline): ?> nur <h1><?=$page->headline?></h1> ausgibt, ohne <hgroup>.

Zum Beispiel so:

<?php if ($page->subheadline): ?>
<hgroup>
<h1><?=$page->headline?></h1>
<h2><?=$page->subheadline?></h2>
</hgroup>
ELSE
<h1><?=$page->headline?></h1>
<?php endif; ?>

Ist hier vielleicht ein Profi, der mir mit der Anwendung des ELSE auf die Sprünge helfen kann?
 

Kirzz

Aktives Mitglied
Thread Starter
Registriert
14.11.2009
Beiträge
1.251
Dank an @warnochfrei

<?php if ($page->subheadline): ?>
<hgroup>
<h1><?=$page->headline?></h1>
<h2><?=$page->subheadline?></h2>
</hgroup>
<?php else: ?>
<h1><?=$page->headline?></h1>
<?php endif; ?>

hat wunderbar funktioniert.
 

roedert

Aktives Mitglied
Registriert
05.01.2011
Beiträge
11.850
Der besseren Übersicht halber bei solch kleinen Blöcken muss man auch nicht immer zwischen PHP und HTML wechseln und kann den wenigen HTML-Text aus PHP über echo ausgeben.....
Code:
<?php
if (Blabla)
  echo "<h1>blabla-1</h1>";
else
  echo "<h1>blabla-2</h1>";
endif
?>
 
Zuletzt bearbeitet:

Difool

Frontend Admin
Registriert
18.03.2004
Beiträge
12.303
Oder so:
Code:
<?php
if ( is_home() ) {
    // This is a homepage
} else {
    // This is not a homepage
}
?>
 

warnochfrei

Aktives Mitglied
Registriert
02.03.2019
Beiträge
1.555
Der besseren Übersicht halber bei solch kleinen Blöcken muss man auch nicht immer zwischen PHP und HTML wechseln und kann den wenigen HTML-Text aus PHP über echo ausgeben.....

Wobei man sich das gar nicht erst angewöhnen sollte - da lieber direkt HTML-Templates.
 
Oben