---
title: "If ViewHelper <f:if>"
manual: "Fluid Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/fluid:typo3fluid-fluid-if"
source: "ViewHelpers/Fluid/If.rst"
rendered: "2026-09-26T08:24:58+00:00"
---

# If ViewHelper `<f:if>` {#typo3fluid-fluid-if}

> [!NOTE]
> This reference is part of the documentation of Fluid Standalone.
> If you are working with Fluid in TYPO3 CMS, please refer to
> [TYPO3's ViewHelper reference](https://docs.typo3.org/other/typo3/view-helper-reference/14.3/en-us/Global/If.html) instead.

This ViewHelper implements an if/else condition.

## Fluid Boolean Rules / Conditions: {#fluid-boolean-rules-conditions}

A condition is evaluated as a boolean value, so you can use any
boolean argument, like a variable.
Alternatively, you can use a full boolean expression.
The entered expression is evaluated as a PHP expression. You can
combine multiple expressions via `&&` (logical AND) and
`||` (logical OR), as well as literal `AND` and `OR` words.

An expression can also be prepended with the `!` ("not") character,
which will negate that expression.

Have a look into the Fluid section of the "TYPO3 Explained" Documentation
for more details about complex conditions.

Boolean expressions have the following form:

`is true` variant: `{variable}`:

```php
<f:if condition="{foo}">
    Will be shown if foo is truthy.
</f:if>

```

or `is false` variant: `!{variable}`:

```php
<f:if condition="!{foo}">
    Will be shown if foo is falsy.
</f:if>

```

or comparisons with expressions:

```php
XX Comparator YY

```

Comparator is one of: `==, !=, <, <=, >, >=` and `%`
The `%` operator (modulo) converts the result of the operation to
boolean.

`XX` and `YY` can be one of:

-   Number
-   String
-   Object Accessor (`object.property`)
-   Array
-   a ViewHelper

```php
<f:if condition="{rank} > 100">
    Will be shown if rank is > 100
</f:if>
<f:if condition="{rank} % 2">
    Will be shown if rank % 2 != 0.
</f:if>
<f:if condition="{rank} == {k:bar()}">
    Checks if rank is equal to the result of the ViewHelper "k:bar"
</f:if>
<f:if condition="{object.property} == 'stringToCompare'">
    Will result in true if {object.property}'s represented value
    equals 'stringToCompare'.
</f:if>

```

## Examples {#examples}

### Basic usage {#basic-usage}

```php
<f:if condition="somecondition">
    This is being shown in case the condition matches
</f:if>

```

Output:

```php
Everything inside the <f:if> tag is being displayed if the condition evaluates to true.

```

### If / then / else {#if-then-else}

```php
<f:if condition="somecondition">
    <f:then>
        This is being shown in case the condition matches.
    </f:then>
    <f:else>
        This is being displayed in case the condition evaluates to false.
    </f:else>
</f:if>

```

Output:

```php
Everything inside the "then" tag is displayed if the condition evaluates to true.
Otherwise, everything inside the "else" tag is displayed.

```

### Inline notation {#inline-notation}

```php
{f:if(condition: someCondition, then: 'condition is met', else: 'condition is not met')}

```

Output:

```php
The value of the "then" attribute is displayed if the condition evaluates to true.
Otherwise, everything the value of the "else" attribute is displayed.

```

### Combining multiple conditions {#combining-multiple-conditions}

```php
<f:if condition="{user.rank} > 100 && {user.type} == 'contributor'">
    <f:then>
        This is being shown in case both conditions match.
    </f:then>
    <f:else if="{user.rank} > 200 && ({user.type} == 'contributor' || {user.type} == 'developer')">
        This is being displayed in case the first block of the condition evaluates to true and any condition in
        the second condition block evaluates to true.
    </f:else>
    <f:else>
        This is being displayed when none of the above conditions evaluated to true.
    </f:else>
</f:if>

```

Output:

```php
Depending on which expression evaluated to true, that value is displayed.
If no expression matched, the contents inside the final "else" tag are displayed.
```

Go to the source code of this ViewHelper: [IfViewHelper.php (GitHub)](https://github.com/TYPO3/Fluid/blob/main/src/ViewHelpers/IfViewHelper.php).

**Arguments**

The following arguments are available for the if ViewHelper:

-   **condition**

    -   *Type:* boolean
    -   *Default:* false

    Condition expression conforming to Fluid boolean rules

-   **else**

    -   *Type:* mixed

    Value to be returned if the condition if not met.

-   **then**

    -   *Type:* mixed

    Value to be returned if the condition if met.
