2012-11-19 12 views
5

Używam silnika szablonów PHP Twig.Czy Twig ma operator koalescencji zerowej?

Czy jest dostępny operator, który wypisze najpierw niepustą wartość (koalescencja)?

Na przykład (z wykorzystaniem PHP Pseudokod):

{{ title ?: "Default Title" }} 

Wiem, że mógłbym zrobić coś takiego, ale to trochę rozwlekły:

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

Odpowiedź jest dostarczana przez @molecularman ale chcę poinformować, można dokonać ostatni przykład krótszą: '{{tytuł? title: 'Tytuł domyślny}}} ' –

Odpowiedz

10

Tak, jest to filtr o nazwie default. Można stosować go do kodu jak poniżej:

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

Od Gałązka 1.12.0, to robi mieć operatorowi ?:, ale to naprawdę nie jest „null koalescencyjny”. Sprawdza prawdę, a nie tylko wartości null, thunder 0 ?: 1 wyjdzie 1.

Documentation

10

Operator null koalescencyjny formalnie wprowadzony gałązka 1,24 (25 stycznia 2016).

* adding support for the ?? operator

Co oznacza, że ​​teraz można to zrobić ...

{{ title ?? "Default Title" }} 

Można nawet łańcucha je razem, aby sprawdzić wiele zmiennych aż ważnej wartości innej niż null jest uznany.

{{ var1 ?? var2 ?? var3 ?? var4 }} 
Powiązane problemy