CodeIgniter, руководство пользователя к версии 1.6.1


Альтернативный синтаксис PHP для файлов отображений

Если вы не используете шаблонизатор CodeIgniter — вы будете писать отображения на чистом PHP. Для уменьшения количества PHP кода и для быстрой идентификации блоков кода рекомендуется использовать альтернативный синтаксис PHP для управляющих структур и пользоваться короткой формой функции echo. Если вы не знакомы с этим синтаксисом, он позволяет устранить фигурные скобки и отказаться от использования echo.

Автоматическая поддержка коротких тегов

Замечание: Если вы обнаружите, что синтаксис описанный на этой странице не работает, то на вашем сервере отключена поддержка «коротких тегов» в файле настройки PHP php.ini. CodeIgniter может опционально искать короткие теги на-лету, позволяя вам использовать их независимо от поддержки на уровне сервера. Эта возможность может быть включена в вашем файле config/config.php.

Учтите, что если вы используете эту функцию, то в случае обнаружения ошибок в файле с отображением информация о них, а так же о строках, на которых они находятся, может быть не точной. Вместо этого все ошибки будут показаны как ошибки функции eval().

Альтернатива Echo

Обычно, для простого вывода информации вы пишете так:

<?php echo $variable; ?>

Вместо этого, при помощи альтернативного синтаксиса, вы можете писать:

<?=$variable?>

Альтернативные управляющие структуры

Контрольные структуры, такие как if, for, foreach и while могут быть написаны в упрощенной форме. Вот пример использования foreach:

<ul>

<?php foreach($todo as $item): ?>

<li><?=$item?></li>

<?php endforeach; ?>

</ul>

Заметьте, что нет фигурных скобок. Вместо этого последняя скобка заменяется endforeach. Каждая из управляющих структур, перечисленных выше, имеет похожий синтаксис окончания: endif, endfor, endforeach и endwhile

Кроме того, не забудьте, что после открывающей структуры необходимо использовать двоеточие, а не точку с запятой, как обычно.

Вот еще пример с использованием if/elseif/else. Обратите внимание на двоеточие:

<?php if ($username == 'sally'): ?>

   <h3>Hi Sally</h3>

<?php elseif ($username == 'joe'): ?>

   <h3>Hi Joe</h3>

<?php else: ?>

   <h3>Hi unknown user</h3>

<?php endif; ?>