2012-11-19 6 views
5

Ich verwende die PHP Template Engine .Hat Twig einen Nullkoaleszenzoperator?

Gibt es einen Operator, der den ersten nicht leeren Wert (Coalesce) ausgibt?

Zum Beispiel (PHP Pseudo-Code verwenden):

{{ title ?: "Default Title" }} 

Ich weiß, dass ich etwas tun könnte, aber es ist ein bisschen langatmig:

{% if title %}{{ title }}{% else %}{{ "Default Title" }}{% endif %} 
+1

Die Antwort wird von @molecularman zur Verfügung gestellt, aber ich möchte Sie wissen lassen, dass Sie Ihr letztes Beispiel kürzer machen können: '{{title? titel: 'Standardtitel'}} ' –

Antwort

10

Ja, es ist dieser Filter genannt default. Sie können es wie unten, um Ihren Code anwenden:

{{ title|default("Default Title") }} 
3

Ab Zweig 1.12.0, es tut haben die ?: Betreiber, aber es ist nicht wirklich „null Koaleszenz“. Es prüft auf Wahrheit, nicht nur Nullen, so dass 0 ?: 1 herauskommen würde 1.

Documentation

10

Der Null-Koaleszenz-Operator wurde in Zweig 1,24 (25. Januar 2016) formal eingeführt.

* adding support for the ?? operator

Welche es ist nun möglich, bedeutet dies zu tun ...

{{ title ?? "Default Title" }} 

Sie sogar zusammen Kette, mehrere Variablen, bis ein gültiger Wert ungleich Null zu überprüfen ist, gefunden.

{{ var1 ?? var2 ?? var3 ?? var4 }}