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` - отрицание знака, смена знака `$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`.
|
||||||
* `$a / $b` - деление, частное от деления `$a` на `$b`.
|
* `$a / $b` - деление, частное от деления `$a` на `$b`.
|
||||||
* `$a % $b` - деление по модулю, целочисленный остаток от деления `$a` на `$b`.
|
* `$a % $b` - деление по модулю, целочисленный остаток от деления `$a` на `$b`.
|
||||||
@ -64,13 +64,13 @@
|
|||||||
|
|
||||||
| Тип операнда 1 | Тип операнда 2 | Результат |
|
| Тип операнда 1 | Тип операнда 2 | Результат |
|
||||||
|-------------------|-------------------|-----------|
|
|-------------------|-------------------|-----------|
|
||||||
| null или string | string | NULL преобразуется в "", числовое или лексическое сравнение |
|
| null или строка | строка | NULL преобразуется в "", числовое или лексическое сравнение |
|
||||||
| bool или null | что угодно | Преобразуется в bool, FALSE < TRUE |
|
| булев или null | что угодно | Преобразуется в bool, FALSE < TRUE |
|
||||||
| object | object | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса - сравниваются свойства тем же способом, что и в массивах |
|
| объект | объект | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса - сравниваются свойства тем же способом, что и в массивах |
|
||||||
| string или number | string или number | Строки переводятся в числа, обычная математика |
|
| строка или число | строка или число | Строки переводятся в числа, обычная математика |
|
||||||
| array | array | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений |
|
| массив | массив | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений |
|
||||||
| object | что угодно | object всегда больше |
|
| объект | что угодно | object всегда больше |
|
||||||
| array | что угодно | array всегда больше |
|
| массим | что угодно | array всегда больше |
|
||||||
|
|
||||||
|
|
||||||
### Побитовые операторы
|
### Побитовые операторы
|
||||||
@ -129,7 +129,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
|
|
||||||
### Строковый оператор
|
### Строковый оператор
|
||||||
|
|
||||||
Оператор конкатенации `~` возвращает строку, представляющую собой соединение левого и правого аргумента.
|
Оператор объединения `~` возвращает строку, представляющую собой соединение левого и правого аргумента.
|
||||||
|
|
||||||
`$a ~ $b` - возвращает результат объединения сток `$a` и `$b`
|
`$a ~ $b` - возвращает результат объединения сток `$a` и `$b`
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
{$request.action !: 'default'}
|
{$request.action !: 'default'}
|
||||||
```
|
```
|
||||||
|
|
||||||
Как видно, оператор `:?` более расширенный чем `:!` и включает в себя функциональность опертора `!:`.
|
Как видно, оператор `:?` более расширенный чем `:!` и включает в себя функциональность оператора `!:`.
|
||||||
|
|
||||||
Для упрощения понимания можно подвести итог:
|
Для упрощения понимания можно подвести итог:
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
### Операторы проверки
|
### Операторы проверки
|
||||||
|
|
||||||
Оператор проверки это упрощенный тернарный оператор от которого осталась только часть проверки без возвращаемых вариантов.
|
Оператор проверки это упрощенный тернарный оператор от которого осталась только часть проверки без возвращаемых вариантов.
|
||||||
Суть операторов — быстро произвести проверку на не пустое занчение и существование пременной.
|
Суть операторов — быстро произвести проверку на не пустое значение и существование пременной.
|
||||||
|
|
||||||
* `$a?` - вернет `TRUE` если `$a` не пустое
|
* `$a?` - вернет `TRUE` если `$a` не пустое
|
||||||
* `$a!` - вернет `TRUE` если `$a` существует
|
* `$a!` - вернет `TRUE` если `$a` существует
|
||||||
@ -206,7 +206,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
|
|
||||||
### Оператор тестирования
|
### Оператор тестирования
|
||||||
|
|
||||||
Оператор `is` производит тесты над перменными или выражением. Левый операнд считается тестируемым, а правый операнд — название теста:
|
Оператор `is` производит тесты над переменными или выражением. Левый операнд считается тестируемым, а правый операнд — название теста:
|
||||||
|
|
||||||
```smarty
|
```smarty
|
||||||
{* проверка переменной на не четность *}
|
{* проверка переменной на не четность *}
|
||||||
@ -217,7 +217,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
Результат тестирования может быть инвертирован с помощью `is not` оператора:
|
Результат тестирования может быть инвертирован с помощью `is not` оператора:
|
||||||
|
|
||||||
```smarty
|
```smarty
|
||||||
{* проверяем переменную что ее значение не явдяется числом *}
|
{* проверяем переменную что ее значение не является числом *}
|
||||||
|
|
||||||
{$a is not integer}
|
{$a is not integer}
|
||||||
```
|
```
|
||||||
@ -234,7 +234,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
* `string` — строка
|
* `string` — строка
|
||||||
* `callback`, `callable` — функция
|
* `callback`, `callable` — функция
|
||||||
* `number`, `numeric` — число, в общем понимании
|
* `number`, `numeric` — число, в общем понимании
|
||||||
* `$a is iterable` - тестирует переменную на возможность итеративного обхода.
|
* `$a is iterable` - тестирует переменную на возможность итеративного обхода (для `foreach`).
|
||||||
* `$a is template` - переменная `$a` содержит название существующего шаблона.
|
* `$a is template` - переменная `$a` содержит название существующего шаблона.
|
||||||
* `$a is empty` - переменная пустая.
|
* `$a is empty` - переменная пустая.
|
||||||
* `$a is set` - переменная существует.
|
* `$a is set` - переменная существует.
|
||||||
@ -245,7 +245,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
|
|
||||||
### Оператор присутствия
|
### Оператор присутствия
|
||||||
|
|
||||||
Оператор `in` проверяет присутвие скалярного значения слева в массиве или строке справа.
|
Оператор `in` проверяет присутствие скалярного значения слева в массиве или строке справа.
|
||||||
Результат тестирования может быть инвертирован с помощью `not ni` оператора.
|
Результат тестирования может быть инвертирован с помощью `not ni` оператора.
|
||||||
|
|
||||||
* `$a in list $b` - значение `$a` содержится в массиве значений `$b`
|
* `$a in list $b` - значение `$a` содержится в массиве значений `$b`
|
||||||
@ -253,7 +253,7 @@ Fenom поддерживает префиксные и постфиксные о
|
|||||||
* `$a in string $b` - значение `$a` содержится в `$b` как подстрока.
|
* `$a in string $b` - значение `$a` содержится в `$b` как подстрока.
|
||||||
* `$a in $b` - значение `$a` содержится в `$b`, где `$b` может быть строкой, обычным или ассоциативным массивом.
|
* `$a in $b` - значение `$a` содержится в `$b`, где `$b` может быть строкой, обычным или ассоциативным массивом.
|
||||||
Этот вариант долгий так как требуется проверить типы переменной `$b`.
|
Этот вариант долгий так как требуется проверить типы переменной `$b`.
|
||||||
Однако если вместо $b явно задан массив иили строка то оператор сам адаптируется для быстрого поиска.
|
Однако если вместо $b явно задан массив или строка то оператор сам адаптируется для быстрого поиска.
|
||||||
|
|
||||||
```smarty
|
```smarty
|
||||||
{'df' in 'abcdefg'}
|
{'df' in 'abcdefg'}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user