Update operators.md

fix typos #107
This commit is contained in:
Ivan Shalganov 2014-08-23 12:23:04 +04:00
parent 0be8b15d68
commit b3992033c9

View File

@ -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'}