Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Filters default
You are reading the documentation for Twig 1.x. Switch to the documentation for Twig 2.x, 3.x.
Warning Twig version 1.x is no longer maintained.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

default

The default filter returns the passed default value if the value is undefined or empty, otherwise the value of the variable:

1
2
3
4
5
6
7
{{ var|default('var is not defined') }}

{{ var.foo|default('foo item on var is not defined') }}

{{ var['foo']|default('foo item on var is not defined') }}

{{ ''|default('passed var is empty')  }}

When using the default filter on an expression that uses variables in some method calls, be sure to use the default filter whenever a variable can be undefined:

1
{{ var.method(foo|default('foo'))|default('foo') }}

Using the default filter on a boolean variable might trigger unexpected behavior, as false is treated as an empty value. Consider using ?? instead:

1
2
3
{% set foo = false %}
{{ foo|default(true) }} {# true #}
{{ foo ?? true }} {# false #}

Note

Read the documentation for the defined and empty tests to learn more about their semantics.

Arguments

  • default: The default value