*`$a <= $b` - не строгое не равество, `$a` меньше или равно `$b`
*`$a >= $b` - не строгое не равество, `$a` больше или равно `$b`
*`$a == $b` - Равно, `$a` равно `$b`
*`$a === $b` - Тождественно равно, `$a` иденично `$b`. Отличается от равества тем что проверяет так же тип значений; если '0' == 0 — истина, то уже '0' === 0 — ложно.
*`$a !== $b` - не иденично, `$a` отличается от `$b`
*`$a != $b` - неравенство, `$a` отличается от `$b`
В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа.
Преобразование типов не происходит при использовании `===` или `!==` так как в этом случае кроме самих значений сравниваются еще и типы.
### Побитовые операторы
Побитовые операторы позволяют считывать и устанавливать конкретные биты целых чисел.
*`$a | $b` - битовое ИЛИ, устанавливаются те биты, которые установлены в `$a` или в `$b`.
*`$a & $b` - битовое И, устанавливаются только те биты, которые установлены и в `$a`, и в `$b`.
*`$a ^ $b` - битовое исключающее ИЛИ, устанавливаются только те биты, которые установлены либо только в `$a`, либо только в `$b`, но не в обоих одновременно.
*`~$a` - битовое отрицание, устанавливаются те биты, которые не установлены в `$a`, и наоборот.
*`$a << $b` - битовый сдвиг влево, все биты переменной `$a` сдвигаются на `$b` позиций влево (каждая позиция подразумевает "умножение на 2")
*`$a >> $b` - битовый сдвиг вправо, все биты переменной `$a` сдвигаются на `$b` позиций вправо (каждая позиция подразумевает "деление на 2")
Tests can be negated by using the `is not` operator.
*`$a is $b` - $a identical $b
*`$a is integer` - test variable type. Type may be int/integer, bool/boolean, float/double/decimal, array, object, scalar, string, callback/callable, number/numeric.
*`$a is iterable` - test variable for iteration.
*`$a is template` - variable `$a` contain existing template name.
*`$a is empty` - checks if a variable is empty.
*`$a is set` - checks if a variable is set.
*`$a is even` - variable `$a` is even.
*`$a is odd` - variable `$a` is odd.
*`$a is MyClass` or `$a is \MyClass` - variable `$a` instance of `MyClass` class
### Containment operator
Tests can be negated by using the `not in` operator.
*`$a in $b` - variable `$a` contains in `$b`, $b may be string, plain or assoc array.
*`$a in list $b` - variable `$a` contains in array `$b` as value
*`$a in keys $b` - array `$b` contain key `$a`
*`$a in string $b` - variable `$a` contains in string `$b` as substring