Альтернативный синтаксис PHP
- Автор mityok on июля 16th, 2008
Если вы не применяете _шаблонизатор_ CodeIgniter, вы скорее всего используете чистый PHP-код в файлах представления. Чтобы минимизировать объем PHP-кода в этих файлах и упростить идентификацию блоков кода, рекомендуется использовать альтернативный синтаксис для управляющих структур и выражений вывода. Если вы не знакомы с данным синтаксисом, он позволяет убрать из кода фигурные скобки и операторы echo.
Автоматическая поддержка коротких тегов
Если вы обнаружите, что синтаксис описанный в данной главе не работает на вашем сервере, возможно что короткие теги отключены в конфигурационном файле PHP. CodeIgniter может на лету преобразовывать короткие теги, позволяя использовать их даже если они отключены в конфигурации PHP на сервере. Эта функциональность может быть включена в файле config/config.php.
Обратите внимание на то, что если вы воспользуетесь данной функциональностью, при возникновении PHP-ошибки в файле представления, сообщение об ошибке и номер строки исходного кода с ошибкой будут отображены некорректно. Вместо стандартных ошибок будут отображаться ошибки в работе функции eval().
Альтернатива функции echo
Обычно для вывода значения переменной используется примерно такой код:
Альтернативный синтаксис данного выражения:
<?=$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; ?>

Отправить комментарий