- атрибутивный шаблонизатор для PHP
 
Пред.
Руководство по Ptal
Функции контекста атрибутов
След.

tal:foreach

Цикл, аналогичный циклу foreach в PHP. Элемент (открывающий, закрывающий теги и содержимое) будет повторен при выполнении цикла.

tal:if, tal:assign, tal:include, указанные в данном теге - будут выполнены перед циклом.

tal:for, tal:content, tal:attributes и пользовательские атрибуты будут выполнены внутри цикла.

 

Внутри цикла доступна локальная переменная $ptal['index'], содержащая номер итерации (от 0 до N-1)

 

Синтаксис:

tal:foreach="[$@]array_expression as [$@]value"
tal:foreach="[$@]array_expression as [$@]key => [$@]value"

Пример:

PHP-скрипт

class Person
{
    var $id;
    var $name;
    
    function __construct($params)
    {
        $this->id    = $params['id'];
        $this->name  = $params['name'];
    }    
}

$persons = array();
$persons[] = new Person(array('id'=>1,'name'=>'Иванов'));
$persons[] = new Person(array('id'=>2,'name'=>'Петров'));
$persons[] = new Person(array('id'=>3,'name'=>'Сидоров'));
$ptal->assign('persons',$persons);

echo $ptal->fetch('test.tal');

templates/test.tal

<table>
<tr tal:foreach="@persons as $person">
  <td>{$person->id}</td>
  <td>{$person->name}</td>
</tr>
</table>

Результат компиляции

<table>
<?php $ptal['index']=0; foreach((array)$this->_tplVars['persons'] as $person):?><tr>
  <td><?php echo $person->id;?></td>
  <td><?php echo $person->name;?></td>
</tr><?php $ptal['index']++; endforeach;?>
</table>

Результат выполнения

<table>
<tr>
  <td>1</td>
  <td>Иванов</td>
</tr><tr>
  <td>2</td>
  <td>Петров</td>
</tr><tr>
  <td>3</td>
  <td>Сидоров</td>
</tr>
</table>
 

 

8 months pregnant quotes