Комментарии

Альтернативный синтаксис условных операторов if/then/else в языке РНР
( 2 Голосов )
Одной из самых примечательных особенностей языка РНР является возможность сочетать элементы разметки РНР с элементами разметки HTML в одном и том же файле. Для этой цели в языке РНР предусмотрен альтернативный способ написания условных операторов if/then/else.
 
В качестве примера рассмотрим следующий фрагмент кода, взятый из файла index.php шаблона atomic:
 
<?php if($this->countModules('atomic-bottomleft')) : ?>
<div class="span-7 colborder">
<jdoc:include type="modules" name="atomic-bottomleft" style="bottommodule" />
</div>
 <?php endif; ?>
Логика выполнения этого фрагмента кода подразумевает вычисление выражения в круглых скобках после условного оператора if, как показано ниже.
 
$this->countModules('atomic-bottomleft')
 
Если результатом вычисления этого выражения оказывается логическое значение true, то строки кода, расположенные между элементами if и endif данного условного оператора, посылаются браузеру. В противном случае эти строки кода просто игнорируются.
Условный оператор if является автономным элементом языка РНР, что позволяет вставлять обычные элементы разметки HTML-документа между элементами синтаксиса if и endif этого условного оператора (в данном случае — это элемент разметки div, содержащий элемент разметки jdoc: include). Этот же фрагмент кода можно было бы написать на РНР следующим образом:
 
<?php if($this->countModules('atomic-bottomleft')) {
echo '<div class="span-7 colborder">';
echo '<jdoc:include type="modules" name="atomic-bottomleft" style="bottommodule" />';
echo '</div>';
} ?>
Оба приведенных выше фрагмента кода выводят один и тот же текст. Но первый из них обладает тем преимуществом, что всякий, знакомый с HTML, может легко прочитать строки кода HTML в этом фрагменте кода РНР. А кроме того, эти строки кода читаются и проверяются на достоверность в HTML-редакторе. Но самое интересное, что тот же самый код можно написать и третьим способом, как показано ниже.
 
<?php if ($this->countModules('atomic-bottomleft')) { ?>
<div class="span-7 colborder">
<jdoc:include type="modules" name="atomic-bottomleft" style="bottommodule" />
</div>
<?php } ?>
Единственное отличие этого третьего фрагмента кода от первого состоит в использовании фигурных скобок в открывающем (вместо двоеточия) и закрывающем дескрипторах РНР. И этот синтаксис позволяет вставлять элементы разметки HTML в блок управляющего оператора РНР, но он менее удобочитаем, чем в первом примере. Поэтому рекомендуется синтаксис из первого примера, тем более что именно он применяется в Joomla.
 
Аналогичный синтаксис имеется и для управляющих операторов языка РНР, в том числе switch, а также для циклов for и foreach. И в этих операторах он дает те же самые преимущества: возможность вставлять обычные элементы разметки HTML в блок управляющего оператора РНР. Другие примеры применения альтернативного синтаксиса приведены в приложении А.
 
Как же выбрать подходящий синтаксис? Очень просто. Большинство файлов в Joomla содержат один элемент разметки РНР и ни одного элемента разметки HTML, поскольку они не предназначены для непосредственного вывода текста в окно браузера. В таких файлах всегда используется обычный синтаксис языка РНР с фигурными скобками. А файлы, содержащие элементы разметки HTML, относятся к шаблонам и компоновкам веб-страниц. И в таких файлах, как правило, используется альтернативный синтаксис языка РНР.
 
Следует, однако, иметь в виду, что для интерпретатора языка РНР совершенно не важно, каким синтаксисом мы пользуемся. Но выбираем мы его из соображений удобочитаемости кода. И это справедливо вообще для многих вариантов решений, выбираемых при проектировании или программировании. Ведь самое главное, чтобы код был удобочитаем и понятен всем заинтересованным лицам.
К числу общеизвестных истин в разработке программного обеспечения относится то обстоятельство, что однажды выпущенная программа почти всегда эксплуатируется дольше, чем предполагают ее разработчики. А это означает, что код программы кому-то придется еще долго читать и сопровождать после того, как ее разработчики перейдут к другим проектам. Именно поэтому мы всегда стараемся писать код так, чтобы он был легко понятен другим.
 
И это тем более важно для такого программного обеспечения с открытым кодом, как Joomla и большинство расширений Joomla. Ведь мы не можем заранее предугадать, где именно будет использоваться открытый код. Но мы можем и должны постараться сделать его как можно более ясным, логичным и понятным, чтобы другим было легче им пользоваться.

Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код