Запитати ШІ
Українська UK
Перейти до Watbot

Вирази

Усередині {{ ... }} можна не лише вставити значення, а й порахувати, порівняти або вибрати текст за умовою:

{{ $вік >= 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) }} грн

Перелік функцій — у довіднику.

Чого не можна

У виразах немає циклів, присвоєнь і звернень до внутрішніх даних платформи — лише оператори та функції з довідника. Докладніше про обмеження — у розділі Помилки та обмеження.