mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
parent
0be8b15d68
commit
b3992033c9
@ -7,7 +7,7 @@
|
||||
|
||||
* `-$a` - отрицание знака, смена знака `$a`.
|
||||
* `$a + $b` - сложение, сумма `$a` и `$b`.
|
||||
* `$a - $b` - вычитаение, разность `$a` и `$b`.
|
||||
* `$a - $b` - вычитание, разность `$a` и `$b`.
|
||||
* `$a * $b` - умножение, произведение `$a` и `$b`.
|
||||
* `$a / $b` - деление, частное от деления `$a` на `$b`.
|
||||
* `$a % $b` - деление по модулю, целочисленный остаток от деления `$a` на `$b`.
|
||||
@ -64,13 +64,13 @@
|
||||
|
||||
| Тип операнда 1 | Тип операнда 2 | Результат |
|
||||
|-------------------|-------------------|-----------|
|
||||
| null или string | string | NULL преобразуется в "", числовое или лексическое сравнение |
|
||||
| bool или null | что угодно | Преобразуется в bool, FALSE < TRUE |
|
||||
| object | object | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса - сравниваются свойства тем же способом, что и в массивах |
|
||||
| string или number | string или number | Строки переводятся в числа, обычная математика |
|
||||
| array | array | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений |
|
||||
| object | что угодно | object всегда больше |
|
||||
| array | что угодно | array всегда больше |
|
||||
| null или строка | строка | NULL преобразуется в "", числовое или лексическое сравнение |
|
||||
| булев или null | что угодно | Преобразуется в bool, FALSE < TRUE |
|
||||
| объект | объект | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса - сравниваются свойства тем же способом, что и в массивах |
|
||||
| строка или число | строка или число | Строки переводятся в числа, обычная математика |
|
||||
| массив | массив | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений |
|
||||
| объект | что угодно | object всегда больше |
|
||||
| массим | что угодно | array всегда больше |
|
||||
|
||||
|
||||
### Побитовые операторы
|
||||
@ -129,7 +129,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
|
||||
### Строковый оператор
|
||||
|
||||
Оператор конкатенации `~` возвращает строку, представляющую собой соединение левого и правого аргумента.
|
||||
Оператор объединения `~` возвращает строку, представляющую собой соединение левого и правого аргумента.
|
||||
|
||||
`$a ~ $b` - возвращает результат объединения сток `$a` и `$b`
|
||||
|
||||
@ -175,7 +175,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
{$request.action !: 'default'}
|
||||
```
|
||||
|
||||
Как видно, оператор `:?` более расширенный чем `:!` и включает в себя функциональность опертора `!:`.
|
||||
Как видно, оператор `:?` более расширенный чем `:!` и включает в себя функциональность оператора `!:`.
|
||||
|
||||
Для упрощения понимания можно подвести итог:
|
||||
|
||||
@ -194,7 +194,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
### Операторы проверки
|
||||
|
||||
Оператор проверки это упрощенный тернарный оператор от которого осталась только часть проверки без возвращаемых вариантов.
|
||||
Суть операторов — быстро произвести проверку на не пустое занчение и существование пременной.
|
||||
Суть операторов — быстро произвести проверку на не пустое значение и существование пременной.
|
||||
|
||||
* `$a?` - вернет `TRUE` если `$a` не пустое
|
||||
* `$a!` - вернет `TRUE` если `$a` существует
|
||||
@ -206,7 +206,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
|
||||
### Оператор тестирования
|
||||
|
||||
Оператор `is` производит тесты над перменными или выражением. Левый операнд считается тестируемым, а правый операнд — название теста:
|
||||
Оператор `is` производит тесты над переменными или выражением. Левый операнд считается тестируемым, а правый операнд — название теста:
|
||||
|
||||
```smarty
|
||||
{* проверка переменной на не четность *}
|
||||
@ -217,7 +217,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
Результат тестирования может быть инвертирован с помощью `is not` оператора:
|
||||
|
||||
```smarty
|
||||
{* проверяем переменную что ее значение не явдяется числом *}
|
||||
{* проверяем переменную что ее значение не является числом *}
|
||||
|
||||
{$a is not integer}
|
||||
```
|
||||
@ -234,7 +234,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
* `string` — строка
|
||||
* `callback`, `callable` — функция
|
||||
* `number`, `numeric` — число, в общем понимании
|
||||
* `$a is iterable` - тестирует переменную на возможность итеративного обхода.
|
||||
* `$a is iterable` - тестирует переменную на возможность итеративного обхода (для `foreach`).
|
||||
* `$a is template` - переменная `$a` содержит название существующего шаблона.
|
||||
* `$a is empty` - переменная пустая.
|
||||
* `$a is set` - переменная существует.
|
||||
@ -245,7 +245,7 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
|
||||
### Оператор присутствия
|
||||
|
||||
Оператор `in` проверяет присутвие скалярного значения слева в массиве или строке справа.
|
||||
Оператор `in` проверяет присутствие скалярного значения слева в массиве или строке справа.
|
||||
Результат тестирования может быть инвертирован с помощью `not ni` оператора.
|
||||
|
||||
* `$a in list $b` - значение `$a` содержится в массиве значений `$b`
|
||||
@ -253,10 +253,10 @@ Fenom поддерживает префиксные и постфиксные о
|
||||
* `$a in string $b` - значение `$a` содержится в `$b` как подстрока.
|
||||
* `$a in $b` - значение `$a` содержится в `$b`, где `$b` может быть строкой, обычным или ассоциативным массивом.
|
||||
Этот вариант долгий так как требуется проверить типы переменной `$b`.
|
||||
Однако если вместо $b явно задан массив иили строка то оператор сам адаптируется для быстрого поиска.
|
||||
Однако если вместо $b явно задан массив или строка то оператор сам адаптируется для быстрого поиска.
|
||||
|
||||
```smarty
|
||||
{'df' in 'abcdefg'}
|
||||
{5 in [1, 5, 25, 125]}
|
||||
{99 in keys [1, 5, 25, 99 => 125]}
|
||||
```
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user