2012-11-19 12 views
5

Sto utilizzando il motore di modello PHP Twig.Twig ha un operatore di coalesce nullo?

Esiste un operatore disponibile che emetterà il primo valore non vuoto (coalesce)?

Per esempio (utilizzando PHP pseudocodice):

{{ title ?: "Default Title" }} 

So che potrei fare qualcosa di simile, ma è un po 'lungo-winded:

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

La risposta è fornita da @molecularman ma voglio farti sapere che puoi rendere più breve il tuo ultimo esempio: '{{title? titolo: 'Default Title'}} ' –

risposta

10

Sì, c'è questo filtro chiamato default. È possibile applicare al vostro codice come di seguito:

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

A partire dal Ramoscello 1.12.0, si fa hanno l'operatore ?:, ma non è realmente "null coalescenza". Controlla la verità, non solo i null, quindi 0 ?: 1 verrebbe fuori 1.

Documentation

10

L'operatore null coalescenza stata formalmente introdotta in Twig 1.24 (gennaio 25, 2016).

* adding support for the ?? operator

che significa che è ora possibile fare questo ...

{{ title ?? "Default Title" }} 

si può anche concatenare insieme, per controllare più variabili fino ad un valore non nullo valida è trovato.

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