 
Альтернативная форма записи управляющих конструкций PHP
Короткая форма записи открывающих тегов PHP
Для простоты сначала рассмотрим примеры с короткой формой записи открывающих тегов PHP.
Вставка редактируемого данного
<td><?= $dat[1] ?></td>
foreach
<? foreach ($tab as $i => $dat): ?>
<?= $dat['edit']?>
Фамилия <?= $dat[1] ?> упоминается <?= $odat[$i] ?> раз.
<? endforeach ?>
Присваивание значения
<?
$aa = 10;
$bb = $aa + 5;
?>
<?= $bb ?>
// Данный пример выведет: 15
if...else
<? if ($dat['edit']): ?> вы можете редактировать этот блок
<? else: ?> вы не можете редактировать этот блок
<? endif ?>
Пример (полосатая таблица)
Это - пример, в котором используются все три конструкции. В нем цвет строк таблицы чередуется между белым (по умолчанию) и серым
(#dddddd):
<? $toggle=1; ?>
<table>
<? foreach ($tab as $dat): ?>
# Если переменная $toggle положительна, то - серый фон
<tr<? if ($toggle>0): ?> bgcolor="#dddddd"<? endif ?>>
<td><?= $dat['edit'] ?></td>
<td><?= $dat[1] ?> </td>
<td><?= $dat[2] ?> </td>
</tr>
<? $toggle=-$toggle ?>
<? endforeach ?>
</table>
Полная форма записи открывающих тегов PHP
В приведенных примерах применялась короткая форма записи открывающих тегов PHP: <? ... ?> .
Для того, чтобы работали короткие теги, они должны быть включены в настройках PHP (в файле php.ini должна присутствовать строка short_open_tag = On).
В PHP4 короткие теги разрешены по умолчанию, в PHP5 - нет.
Если вы хотите использовать PHP в комбинации с XML (чтобы беспрепятственно использовать <?xml ?>) лучше отказаться от коротких открывающих тегов.
Полная форма немного длиннее: <?php ... ?> .
По другому выглядит полная конструкция вывода на экран. Вместо <?= ... ?> нужно писать <?php echo ... ?> .
С учетом этих замен последний пример будет выглядеть так:
Полная (не короткая) форма записи открывающих тегов PHP
<?php $toggle=1; ?>
<table>
<?php foreach ($tab as $dat): ?>
<tr<?php if ($toggle>0): ?> bgcolor="#dddddd"<?php endif ?>>
<td><?php echo $dat['edit'] ?></td>
<td><?php echo $dat[1] ?> </td>
<td><?php echo $dat[2] ?> </td>
</tr>
<?php $toggle=-$toggle ?>
<?php endforeach ?>
</table>
Короткие теги удобно применять на стадии разработки. Готовая же работа должна быть выполнена обязательно с полной формой открывающих тегов. Для переделки коротких тегов в полную форму нет необходимости редактировать отдельно каждый тег - большинство редакторов кода позволяет делать одновременную замену во всех файлах шаблонов (обычно с помощью комбинации клавиш Ctrl+Shift+R).
Замены нужно производить в три прохода:
Переход от короткой формы записи открывающих тегов к полной (без использования регулярных выражений)
| | Найти: | Заменить на: |
| 1. | <?= | <? echo |
| 2. | <? | <?php |
| 3. | <?phpphp | <?php | Контрольный проход, т.к. где-то уже могла применяться полная форма
|
Примечания
-
Начиная с PHP 5.4, для вывода можно вновь использовать короткий тег
<?= , даже при выключенной опции short_open_tag.
-
PHP-код в альтернативном синтаксисе выполняется приблизительно на 30% быстрее, чем тот же код, записанный в основной форме, то есть, с помощью оператора echo.
|