fenom/docs/mods/modifiers.md
2013-02-07 17:37:16 +04:00

4.4 KiB
Raw Blame History

Модификаторы

Оператор if

Реализация "оператора if":http://php.net/if из PHP

{if <expresion>}
   {*...some code...*}
{/if}

Код, расположенный в теге if будет выполнен/выведен если выражение @@ возвращает значение приводимое к TRUE Использование блока elseif

{if <expresion1>}
   {*...some code...*}
{elseif <expresion2>}
   {*...some code...*}
{/if}

Код, расположенный после тега elseif будет выполнен/выведен, если выражение @@ вернуло значение приводимое к FALSE, - приводимое к TRUE

Использование блока else

{if <expresion>}
   {*...some code...*}
{else}
   {*...some code...*}
{/if}

Код, расположенный после тега else будет выполнен/выведен, если выражение вернуло значение приводимое к FALSE

В тестируемых выражениях могут быть использованы "логические операторы":http://www.php.net/manual/en/language.operators.logical.php , что позволяет обрабатывать сочетания нескольких условий.

Оператор foreach

Реализация оператора foreach в PHP Общий синтаксис:

{foreach <array> as <key_var> => <value_var> index=<index_var> first=<first_flag> last=<last_flag>}
    {*...some code...*}
    {if <expression1>}
        {break}
    {/if}
    {*...some code...*}
    {if <expression2>}
        {continue}
    {/if}
    {*...some code...*}
{foreachelse}
    {*...some code...*}
{/foreach}

(!) <index_var>, <first_flag>, <last_flag>, <key_var> и <value_var> могут быть только переменные (допускаются вложенности на подобие $a.b.c, но массив $a.b должен быть объявлен).

Перебор значений массива $list

{foreach $list as $value}
 <div>{$value}</div>
{/foreach}

Перебор ключей и значений массива $list

{foreach $list as $key => $value}
 <div>{$key}: {$value}</div>
{/foreach}

Получение номера (индекса) итерации

{foreach $list as $value index=$index}
 <div>№{$index}: {$value}</div>
{/foreach}

Определение первого элемента

{foreach $list as $value first=$first}
 <div>{if $first} first item {/if} {$value}</div>
{/foreach}

Переменная $first будет иметь значение TRUE, если текущая итерация является первой.

Определение последнего элемента

{foreach $list as $value last=$last}
 <div>{if $last} last item {/if} {$value}</div>
{/foreach}

Переменная $last будет иметь значение TRUE, если текущая итерация является последней. Использование @last@ замедляет работу цикла и требует от $list быть countable. Если есть возможность используйте first параметр.

Вложенные теги

  • {break} используется для выхода из цикла до достижения последней итерации. Если в цикле встречается тег {break}, цикл завершает свою работу, и далее выполняется код, следующий сразу за блоком цикла
  • {continue} используется для прерывания текущей итерации. Если в цикле встречается тег {continue}, часть цикла, следующая после тега, не выполняется, и начинается следующая итерация. Если текущая итерация была последней, цикл завершается.
  • {foreachelse} ограничивает код, который должен быть выполнен, если итерируемый объект пуст.