Mniejsze wyrażenia można łączyć ze sobą w większe dzięki operatorom. Operator pobiera wartości wyrażeń po swej lewej i prawej stronie, a następnie na ich podstawie sam produkuje wartość. Przykładem jest $a + $b, gdzie sumujemy wartości w blokach $a oraz $b. Gdyby coś takiego osadzić w szablonie, w danym miejscu wyświetliłaby nam się suma. Istnieje też niewielki zestaw operatorów działających tylko na jednym argumencie (np. $a++, który zwraca wartość bloku $a, a następnie powiększa ją o 1).
W OPT część operatorów posiada dwie formy zapisu - symboliczną oraz tekstową. Można z nich korzystać zamiennie. W przypadku formy tekstowej kompilator potrafi rozpoznać jej użycie z kontekstu. Jeżeli wpisalibyśmy "eq" w miejscu, gdzie spodziewany jest ciąg tekstowy, zostanie on obsłużony jako napis, a nie jako operator.
Tabela 2.1. Lista operatorów
| Symoliczny | Tekstowy | Przykład | Opis |
|---|---|---|---|
| == | eq | $a == $b | prawda, gdy $a jest równe $b |
| != | neq | $a != $b | prawda, gdy $a nie jest równe $b |
| === | eqt | $a === $b | prawda, gdy $a jest równe $b i oba wyrażenia mają ten sam typ |
| !== | neqt | $a !== $b | prawda, gdy $a nie jest równe $b lub oba wyrażenia mają różne typy |
| gt | $a > $b | prawda, gdy $a jest większe niż $b | |
| lt | $a < $b | prawda, gdy $a jest mniejsze niż $b | |
| gte, ge | $a >= $b | prawda, gdy $a jest większe lub równe $b | |
| lte, le | $a <= $b | prawda, gdy $a jest mniejsze lub równe $b | |
| and | $a and $b | prawda, gdy $a i $b są prawdziwe | |
| or | $a or $b | prawda, gdy $a lub $b lub oba naraz są prawdziwe | |
| xor | $a xor $b | prawda, gdy $a lub $b jest prawdziwe, lecz nie oba naraz. | |
| ! | not | ! $a | prawda, gdy $a jest fałszywe |
| + | add | $a + $b | suma $a i $b |
| - | sub | $a - $b | różnica $a i $b |
| * | mul | $a * $b | iloczyn $a i $b |
| / | div | $a / $b | iloraz $a i $b |
| % | mod | $a % $b | reszta z dzielenia $a przez $b |
| ++ | $a++, ++$a | zwraca wartość $a, a następnie zwiększa ją o 1 lub najpierw zwiększa o 1, a później zwraca. | |
| -- | $a--, --$a | zwraca wartość $a, a następnie zmniejsza ją o 1 lub najpierw zmniejsza, a później zwraca. | |
| ~ | $a ~ $b | Łączenie ciągów tekstowych. | |
| = | is | @a is $b | przypisuje wartość wyrażenia po prawej zmiennej lub blokowi po lewej |