Вирази
Усередині {{ ... }} можна не лише вставити значення, а й порахувати, порівняти або вибрати текст за умовою:
{{ $вік >= 18 ? "Ласкаво просимо!" : "Доступ з 18 років" }}
Знижка 10%: {{ $ціна * 0.9 }} грн
{{ upper(first_name) ~ ", вітаємо!" }}
З чого складається вираз
| Що | Як писати | Приклад |
|---|---|---|
| Змінна контакту | $назва |
$місто |
| Змінна з пробілами в назві | var("назва") |
var("Ім'я клієнта") |
| Дані контакту | назва без $ |
first_name, phone |
| Глобальна змінна | global("назва") |
global("Курс (USD)") |
| Текст | у лапках "..." або '...' |
"Добрий день" |
| Число | цифри, дробова частина через крапку | 10, 0.9 |
| Логічне значення | true, false |
|
| Порожнє значення | null |
|
| Функція | назва(аргументи) |
round($ціна, 2) |
Усередині лапок нічого не замінюється: {{ "ціна $a" }} виведе ціна $a.
Арифметика
| Оператор | Дія | Приклад | Результат |
|---|---|---|---|
+ |
додавання | {{ 2 + 3 }} |
5 |
- |
віднімання | {{ 10 - 4 }} |
6 |
* |
множення | {{ 3 * 4 }} |
12 |
/ |
ділення | {{ 10 / 4 }} |
2.5 |
% |
остача від ділення | {{ 10 % 3 }} |
1 |
** |
степінь | {{ 2 ** 10 }} |
1024 |
Дужки змінюють порядок дій: {{ ($ціна + $доставка) * 2 }}.
Дробові числа виводяться без зайвих знаків: {{ 0.1 + 0.2 }} дасть 0.3. Щоб округлити, використовуйте round, для виведення з роздільниками — number_format.
Порівняння
| Оператор | Значення |
|---|---|
== |
дорівнює |
!= |
не дорівнює |
>, >= |
більше, більше або дорівнює |
<, <= |
менше, менше або дорівнює |
Якщо з обох боків числа — навіть записані текстом, як значення змінних, — порівнюються числа: "10" > 9 істинне.
Результат порівняння, виведений сам по собі, — true або false: {{ $вік >= 18 }}.
Логіка
| Оператор | Значення |
|---|---|
and або && |
і |
or або || |
або |
not або ! |
не |
{{ $вік >= 18 and $місто == "Київ" ? "Запрошуємо в офіс" : "Працюємо онлайн" }}
Умова
умова ? якщо_так : якщо_ні — вибирає один із двох варіантів:
{{ $бали >= 100 ? "Вам доступний подарунок" : "До подарунка " ~ (100 - $бали) ~ " балів" }}
Коротка форма значення ?: запасне виведе значення, якщо воно не порожнє, інакше — запасне:
Вітаємо, {{ first_name ?: "друже" }}!
Запасне значення для порожніх даних
значення ?? запасне — якщо значення немає зовсім (у контакту не вказано телефон, змінну не заповнено), підставиться запасне:
Телефон: {{ phone ?? "не вказано" }}
Робота з текстом
| Оператор | Дія | Приклад |
|---|---|---|
~ |
склеїти текст | {{ first_name ~ " " ~ last_name }} |
contains |
містить | {{ $відповідь contains "так" ? "Чудово!" : "Шкода" }} |
starts with |
починається з | {{ phone starts with "+380" ? "Україна" : "Інша країна" }} |
ends with |
закінчується на | {{ email ends with "@gmail.com" }} |
in |
є у списку | {{ $місто in ["Київ", "Львів"] ? "Є доставка" : "Самовивіз" }} |
not in |
немає у списку | {{ $тариф not in ["pro", "business"] }} |
contains, starts with і ends with розрізняють великі й малі літери. Щоб не розрізняти, зведіть текст до одного регістру: {{ lower($відповідь) contains "так" }}.
Функції всередині виразів
Функції можна вкладати одна в одну й поєднувати з операторами:
{{ capitalize(lower(var("Ім'я клієнта"))) }}
{{ round(($ціна + $доставка) * 0.9, 2) }}
{{ number_format(global("Курс (USD)") * $сума, 2) }} грн
Перелік функцій — у довіднику.
Чого не можна
У виразах немає циклів, присвоєнь і звернень до внутрішніх даних платформи — лише оператори та функції з довідника. Докладніше про обмеження — у розділі Помилки та обмеження.