Tach!
... wobei ich mich frage, ob das der richtige weg ist? Das ist ja eine riesige Codezeile für eine popelige Checkbox
<input type="checkbox" name="checkboxen[]" value="IrgendEinWert1" <?php if ($Datensatz->IrgendEinWert1 == 1) { ?> checked="checked"<?php };?>>
Ja, die Länge des Codes ist nicht weiter relevant. Hauptsache ist, dass er verständlich ist. Der Computer kann auch mit größeren Datenmengen sehr gut umgehen. Die Wartbarkeit für Menschen ist das wichtigere Kriterium.
Wenn du abkürzen möchtest, dann zum Beispiel so:
<input type="checkbox" name="checkboxen[]" value="IrgendEinWert1" <?= $Datensatz->IrgendEinWert1 ? 'checked' : ''?>>
Das Attribut checked
muss nur da sein. Es muss keinen Inhalt haben. Selbst wenn es als checked=""
dasteht, ist es gesetzt.
Es kann sinnvoll sein, für HTML-Code den PHP-Block zu verlassen. Vor allem dann, wenn es sich nicht nur um Stückchen sondern ganze Elemente (eins oder mehrere) handelt. Solchen Code kann dann auch ein Editor besser mit Highlighting etc. unterstützen, weil er die Syntaxbereiche besser erkennen kann. Wenn stattdessen ein String-Literal Code enthält, ist das für die Editoren schwerer zu erkennen.
<?php if ($error) { ?>
<p>Fehler vorhanden.</p>
<?php } ?>
oder auch
<?php if ($error): ?>
<p>Fehler vorhanden.</p>
<?php endif; ?>
Welche der beiden Varianten du verwendest, ist eine Sache der persönlichen Vorliebe.
In deinem Fall fügst du lediglich das checked
hinzu oder auch nicht, da ist es durchaus vertretbar, das als String in PHP zu notieren statt zwei PHP-Blöcke und einen HTML-Bereich dazwischen zu haben.
Die Test-Bedingung auf = 1
kann man weglassen, denn der Wert 1 wird im booleschen Kontext bereits als true anerkannt, und die Alternative 0 oder auch NULL als false.
Und zu guter Letzt kann man das if-Konstrukt durch den ternären Operator ?:
ersetzen, als auch das eingebaute echo bei <?=
verwenden.
dedlfix.