Was ist der richtige Weg zum Einbetten von else- und elseif-Bedingungen in HTML?
Was ist der richtige Weg zum Einbetten von else- und elseif-Bedingungen in HTML?
Antworten:
Ich empfehle die folgende Syntax für die Lesbarkeit.
<? if ($condition): ?>
<p>Content</p>
<? elseif ($other_condition): ?>
<p>Other Content</p>
<? else: ?>
<p>Default Content</p>
<? endif; ?>
Hinweis: Wenn Sie phpdie geöffneten Tags weglassen, muss dies short_open_tagsin Ihrer Konfiguration aktiviert sein . Dies ist die Standardeinstellung . Die relevante bedingte Syntax ohne geschweifte Klammern ist immer aktiviert und kann unabhängig von dieser Anweisung verwendet werden.
<?php if ($foo) { ?>
<div class="mydiv">Condition is true</div>
<?php } else { ?>
<div class="myotherdiv">Condition is false</div>
<?php } ?>
In der Antwort von @Patrick McMahon ist der zweite Kommentar hier ( $ first_condition ist falsch und $ second_condition ist wahr ) nicht ganz korrekt:
<?php if($first_condition): ?>
/*$first_condition is true*/
<div class="first-condition-true">First Condition is true</div>
<?php elseif($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<div class="second-condition-true">Second Condition is true</div>
<?php else: ?>
/*$first_condition and $second_condition are false*/
<div class="first-and-second-condition-false">Conditions are false</div>
<?php endif; ?>
Elseif löst aus, ob $ first_condition wahr oder falsch ist, ebenso wie zusätzliche elseif- Anweisungen, wenn mehrere vorhanden sind.
Ich bin kein PHP-Experte, daher weiß ich nicht, ob dies der richtige Weg ist, um zu sagen , ob dies oder das sonst so ist oder ob es einen anderen / besseren Weg gibt, es in PHP zu codieren, aber dies wäre eine wichtige Unterscheidung für diejenigen, die danach suchen OP-Bedingungen versus ELSE-Bedingungen.
Quelle ist w3schools.com und meine eigene Erfahrung.
if(true){ echo 'here';} elseif (true){ echo 'second';} else { echo 'whaddup';}exit;Ausgabe: "hier" Auf PHP 5.5
<?php if (date("H") < "12" && date("H")>"6") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/morning.gif"
<?php } elseif (date("H") > "12" && date("H")<"17") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/noon.gif"
<?php } elseif (date("H") > "17" && date("H")<"21") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/evening.gif"
<?php } elseif (date("H") > "21" && date("H")<"24") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/night.gif"
<?php }else { ?>
src="<?php bloginfo('template_url'); ?>/images/img/mid_night.gif"
<?php } ?>
Sie werden mehrere verschiedene Methoden finden, die Menschen verwenden und die jeweils ihren eigenen Platz haben.
<?php if($first_condition): ?>
/*$first_condition is true*/
<?php elseif ($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<?php else: ?>
/*$first_condition and $second_condition are false*/
<?php endif; ?>
Wenn Sie in Ihrem php.ini-Attribut short_open_tag = true(das normalerweise in line 141der Standarddatei php.ini enthalten ist) Ihr php open-Tag von <?phpbis ersetzen können <?. Dies wird nicht empfohlen, da die meisten Live-Server-Umgebungen dies deaktiviert haben (einschließlich vieler CMS wie Drupal, WordPress und Joomla). Ich habe bereits kurze Hand-Open-Tags in Drupal getestet und bestätigt, dass Ihre Website dadurch beschädigt wird. Bleiben Sie also bei <?php. short_open_tagist nicht in allen Serverkonfigurationen standardmäßig aktiviert und darf bei der Entwicklung für unbekannte Serverkonfigurationen nicht als solche angenommen werden. Viele Hosting-Unternehmen haben short_open_tagausgeschaltet.
Eine schnelle Suche short_open_tagin stackExchange zeigt 830 Ergebnisse. https://stackoverflow.com/search?q=short_open_tag
Das sind viele Leute, die Probleme mit etwas haben, mit dem sie einfach nicht spielen sollten.
In einigen Serverumgebungen und -anwendungen stürzen kurze PHP-Open-Tags Ihren Code auch bei short_open_tagEinstellung auf ab true.
short_open_tag wird in PHP6 entfernt, verwenden Sie also keine kurzen Hand-Tags.
Alle zukünftigen PHP-Versionen werden gelöscht short_open_tag
"Es wird seit einigen Jahren empfohlen, nicht das Short-Tag" Shortcut "zu verwenden, sondern die vollständige Tag-Kombination. Durch die weit verbreitete Verwendung von XML und die Verwendung dieser Tags durch andere Sprachen kann der Server leicht verwirrt werden Am Ende wird der falsche Code im falschen Kontext analysiert. Da diese Verknüpfung jedoch schon so lange eine Funktion ist, wird sie derzeit aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Wir empfehlen jedoch, sie nicht zu verwenden. " - Jelmer 25. September 12 um 9:00 Uhr php: "short_open_tag = On" funktioniert nicht
und
Normalerweise schreibst du PHP so :. Wenn jedoch die Direktive allow_short_tags aktiviert ist, können Sie Folgendes verwenden :. Außerdem bietet sort tags eine zusätzliche Syntax: die gleich ist.
Kurze Tags mögen cool erscheinen, sind es aber nicht. Sie verursachen nur mehr Probleme. Oh ... und IIRC werden sie aus PHP6 entfernt. Crozin antwortete 24. August 10 um 22:12 php short_open_tag Problem
und
Um den Warum-Teil zu beantworten, zitiere ich den Zend PHP 5-Zertifizierungsleitfaden: "Kurze Tags waren zeitweise der Standard in der PHP-Welt; sie haben jedoch den Hauptnachteil, dass sie mit XML-Headern in Konflikt stehen, und haben dies daher getan etwas auf der Strecke geblieben. " - Fluffy 13. April 11 um 14:40 Sind PHP Short Tags akzeptabel zu verwenden?
Möglicherweise wird auch das folgende Beispiel verwendet:
<?php if($first_condition){ ?>
/*$first_condition is true*/
<?php }else if ($second_condition){ ?>
/*$first_condition is false and $second_condition is true*/
<?php }else{ ?>
/*$first_condition and $second_condition are false*/
<?php } ?>
Dies wird funktionieren, ist jedoch sehr verpönt, da es nicht als lesbar angesehen wird und nicht das ist, wofür Sie dieses Format verwenden würden. Wenn Sie eine PHP-Datei hätten, in der sich ein PHP-Codeblock befand, in dem keine eingebetteten Tags enthalten waren, würden Sie das Klammerformat verwenden.
Das folgende Beispiel zeigt, wann die Klammermethode verwendet werden muss
<?php
if($first_condition){
/*$first_condition is true*/
}else if ($second_condition){
/*$first_condition is false and $second_condition is true*/
}else{
/*$first_condition and $second_condition are false*/
}
?>
Wenn Sie diesen Code für sich selbst erstellen, können Sie tun, was Sie möchten. Wenn Sie jedoch mit einem Team an einem Arbeitsplatz arbeiten, wird empfohlen, das richtige Format für die richtigen Umstände zu verwenden. Wenn Sie in eingebetteten HTML / PHP-Skripten Klammern verwenden, ist dies ein guter Weg, um gefeuert zu werden, da niemand Ihren Code nach Ihnen bereinigen möchte. IT-Chefs kümmern sich um die Lesbarkeit des Codes und die Bewertung der Lesbarkeit durch Hochschulprofessoren.
AKTUALISIEREN
basierend auf Kommentaren von duskwuff ist es immer noch unklar, ob von Kurzschrift (nach den PHP-Standards) abgeraten wird oder nicht. Ich werde diese Antwort aktualisieren, sobald ich weitere Informationen erhalte. Aber basierend auf vielen Dokumenten, die im Internet gefunden wurden, dass Kurzschrift schlecht für die Portabilität ist. Ich persönlich würde es immer noch nicht verwenden, da es keinen Vorteil bietet und Sie sich darauf verlassen müssen, dass eine Einstellung aktiviert ist, die nicht für jeden Webhost aktiviert ist.