Prüfen, ob variable gesetzt ist und dann echo ohne Wiederholung?
Gibt es eine prägnante Art und Weise zu überprüfen, ob eine variable gesetzt ist, und dann echo ohne Wiederholung der gleichen Variablen Namen?
Statt:
<?php
if(!empty($this->variable)) {
echo '<a href="', $this->variable, '">Link</a>';
}
?>
Ich bin darüber nachzudenken, etwas in den Linien der C-ähnlichen pseudocode:
<?php
echo if(!empty($this->variable, '<a href="', %s, '">Link</a>'));
?>
PHP sprintf, aber es hat nicht ganz das tun, was ich mir erhofft hatte. Wenn ich natürlich machen könnte, eine Methode/Funktion aus, aber sicherlich muss es einen Weg, es zu tun "nativ"?
Update:
Ternäre Operationen wiederholen sich auch die $this->variable
Teil, wenn ich es verstanden habe?
echo (!empty($this->variable) ? '<a href="',$this->variable,'">Link</a> : "nothing");
Ich bin mir nicht bewusst, irgendwelche Kürzel. Wenn Sie es verwenden eine Menge, ich würde sowieso empfehlen, eine Funktion für, die.
Ternäre operation (
Ternäre operation (
(bool) ? value : default
) ist keine option?InformationsquelleAutor Juha Untinen | 2013-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die nächstgelegene Sie bekommen können, was Sie suchen, ist die Verwendung der short form ternärer operator (seit PHP5.3)
Aber dies trigger "Undefined variable" beachten. Die kann man natürlich unterdrücken mit
@
Immer noch nicht die eleganteste/saubere Lösung.
So, der sauberste code, den Sie für hoffen können,
Gute denken. Schade gibt es nicht eine eingebaute PHP-Funktion und überraschend zu.
InformationsquelleAutor German Rumm
Update:
PHP 7 führt eine neue Funktion ein:Null coalescing-operator
Hier ist das Beispiel aus php.net.
Für diejenigen, die nicht mit PHP7, doch hier ist meine ursprüngliche Antwort...
Nutze ich eine kleine Funktion um dies zu erreichen:
Beispiel:
VORBEHALT: Als Inigo wies in einem Kommentar unter einem unerwünschten Nebeneffekt bei der Verwendung dieser Funktion ist, dass Sie können ändern Sie das Objekt /array, das Sie untersuchen. Zum Beispiel:
Ausgabe:
Sie sind völlig richtig Inigo - würde ich nie realisiert, dass don T in der Regel verwenden Sie diese mit arrays. Sieht aus wie wir müssen warten, bis wir mit PHP7 für eine Lösung, die definitiv nicht ändern, das ursprüngliche Objekt.
InformationsquelleAutor Felix Eve
Verwenden
isset
- Funktion von php so:ich denke, das wird helfen.
$this->variable
würde noch wiederholen, in der "etwas tun" Teil. Ich möchte es tun, ohne zu wiederholen es mehrfach in der Befehlszeile ein. (downvote war nicht von mir...)ich bearbeitet meine Antwort überprüfen Sie bitte jetzt.
InformationsquelleAutor saveATcode