Location: PHPKode > scripts > Dextep Template Engine > manual-ru.html
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Ðóêîâîäñòâî ïî Dextep</title>
<meta charset="windows-1251" />
<style type="text/css">
table{width:100%}
ol ul{list-style:none;padding-left:1em;margin-left:0;}
code{color:#000066}
.notice{color:#aaa}
</style>
</head>
<body>
<h1>Ðóêîâîäñòâî ïî Dextep</h1>
<p>Version 1.0 (2010-11-02)<br />
Copyright &copy; 2010, Alexey Burkov, <a href="http://www.exlab.net/">www.exlab.net</a></p>
<p>This manual also available in <a href="manual-en.html">English</a>.</p>

<a id="toc"><h2>Ñîäåðæàíèå</h2></a>
<ol>
<li><a href="#intro">×òî ýòî òàêîå?</a></li>
<li><a href="#install">Óñòàíîâêà è íàñòðîéêà</a></li>
<li><a href="#using">Dextep â äåéñòâèè</a><ul>
	<li><a href="#basics">Îñíîâû</a></li>
	<li><a href="#variables">Ïåðåìåííûå</a></li>
	<li><a href="#caching">Êýøèðîâàíèå</a></li>
	<li><a href="#errors">Îáðàáîòêà îøèáîê</a></li>
	</ul></li>
<li><a href="#syntax">Ñèíòàêñèñ øàáëîíîâ</a><ul>
	<li><a href="#comments">Êîììåíòàðèè</a></li>
	<li><a href="#expressions">Ïåðåìåííûå è âûðàæåíèÿ</a></li>
	<li><a href="#if">Óñëîâèÿ <code>{if}</code></a></li>
	<li><a href="#foreach">Öèêëû <code>{foreach}</code></a></li>
	<li><a href="#for">Öèêëû <code>{for}</code></a></li>
	<li><a href="#include">Ïîäøàáëîíû</a></li>
</ul></li>
<li><a href="#appendix">Ïðèëîæåíèå. Âûðàæåíèÿ è îïåðàòîðû</a></li>
<li><a href="#credits">Ëèöåíçèîííîå ñîãëàøåíèå</a></li>
</ol>
<hr />
<a id="intro"><h2>×òî ýòî òàêîå?</h2></a>

<p>Dextep &mdash; äîâîëüíî ïðîñòîé äâèæîê äëÿ ðàáîòû ñ øàáëîíàìè íà PHP. Îí ñîçäàâàëñÿ êàê ëåãêèé èíñòðóìåíò äëÿ èñïîëüçîâàíèÿ àðõèòåêòóðíîãî øàáëîíà <abbr title="Model-View-Controller &mdash; ìîäåëü-ïðåäñòàâëåíèå-ïîâåäåíèå">MVC</abbr>. Äðóãèìè ñëîâàìè, âû ñìîæåòå îòäåëèòü ëîãèêó ïðèëîæåíèÿ îò ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ.</p>
<p>Äâèæîê ïîääåðæèâàåò áàçîâóþ ëîãèêó, èñïîëüçóåìóþ â ïðåäñòàâëåíèè, &mdash; ïðîñòåéøèå âûðàæåíèÿ, óñëîâíûé îïåðàòîð (<code>{if}</code>), öèêëû (<code>{for}</code> è <code>{foreach}</code>) è ïðèìåíåíèå ïîäøàáëîíîâ. Ñèíòàêñèñ Dextep íàïîìèíàåò Smarty, îäíàêî îí ãîðàçäî ïðîùå, ó÷èòûâàÿ ìåíüøåå êîëè÷åñòâî ôóíêöèé è ïðåäëàãàåìûõ âîçìîæíîñòåé. Dextep òàêæå êîìïèëèðóåò øàáëîí è êýøèðóåò åãî äëÿ äîñòèæåíèÿ ìàêñèìàëüíîé ñêîðîñòè ðàáîòû.</p>

<a id="install"><h2>Óñòàíîâêà è íàñòðîéêà</h2></a>

<p>Äëÿ ðàáîòû Dextep òðåáóåòñÿ âåá-ñåðâåð ñ PHP 4.4.9 èëè âûøå. Ïðåäûäóùèå âåðñèè äîëæíû ïîääåðæèâàòüñÿ âïëîòü äî PHP 4.0.6, íî òåñòèðîâàíèå íå ïðîâîäèëîñü. Ìîæåòå ïîïðîáîâàòü çàïóñòèòü <code>test.php</code>, ÷òîáû ïðîâåðèòü ýòî ñàìîñòîÿòåëüíî.</p>
<p>×òîáû óñòàíîâèòü Dextep:
<ol>
	<li>ðàñïàêóéòå <code>Dextep.class.php</code> íà ñåðâåð, åñëè âû èñïîëüçóåòå PHP 5 èëè âûøå;</li>
	<li>åñëè ó âàñ PHP 4, òî âàì ñëåäóåò èñïîëüçîâàòü ôàéë <code>Dextep-php4.class.php</code> (ïðè æåëàíèè âû ìîæåòå ïåðåèìåíîâàòü åãî â <code>Dextep.class.php</code>).</li>
</ol>
<p>Âû ìîæåòå âêëþ÷èòü/îòêëþ÷èòü êýøèðîâàíèå, èçìåíèòü ïóòè ê ïàïêàì øàáëîíîâ è êýøà, à òàêæå ðàñøèðåíèÿ ôàéëîâ øàáëîíîâ. Äëÿ ýòîãî èçìåíèòå ñîîòâåòñòâóþùèå çíà÷åíèÿ ñâîéñòâ êëàññà <code>Dextep</code>. Çíà÷åíèÿ ïî óìîë÷àíèþ:</p>
<pre><code>$cacheEnabled = true;		<span class="notice">// true = êýøèðîâàíèå âêëþ÷åíî, false = îòêëþ÷åíî</span>
$cachePath = 'cache/';		<span class="notice">// ïóòü ê ïàïêå êýøà</span>
$templatePath = 'templates/';	<span class="notice">// ïóòü ê ïàïêå øàáëîíîâ</span>
$templateExt = '.html';		<span class="notice">// ðàñøèðåíèå ôàéëîâ øàáëîíîâ</span></code></pre>
<p>Óáåäèòåñü, ÷òî ïàïêè <code>$cachePath</code> è <code>$templatePath</code> ñóùåñòâóþò. Åñëè âû èñïîëüçóåòå êýøèðîâàíèå, òî óñòàíîâèòå ïðàâà íà çàïèñü ïàïêå êýøà.</p>

<a id="using"><h2>Dextep â äåéñòâèè</h2></a>

<a id="basics"><h3>Îñíîâû</h3></a>
<p>Âî-ïåðâûõ, íåîáõîäèìî ñîçäàòü îáúåêò êëàññà <code>Dextep</code>:</p>
<pre><code>require_once "Dextep.class.php";
$template = new Dextep();
</code></pre>
<p>Øàáëîíû &mdash; â ñóùíîñòè ôàéëû ñ ðàñøèðåíèåì <code>.html</code> (îïðåäåëÿåòñÿ â ñâîéñòâå <code>$templateExt</code>), õðàíèìûå â ïàïêå äëÿ øàáëîíîâ (îïðåäåëÿåòñÿ â ñâîéñòâå <code>$templatePath</code>) èëè åå ïîäïàïêàõ. Ìåòîä <code>getTemplate($tpl)</code> âîçâðàùàåò âûïîëíåííûé êîä øàáëîíà, ãäå <code>$tpl</code> &mdash; èìÿ ôàéëà ñ øàáëîíîì áåç ðàñøèðåíèÿ. Íàïðèìåð, ñëåäóþùèé êîä âûâîäèò øàáëîí èç ôàéëà <code>page.html</code>:</p>
<pre><code>echo $template->getTemplate('page');</code></pre>
<p>À ýòîò ïðèìåð ïðèñâîèò ñòðîêó ñ âûïîëíåííûì øàáëîíîì <code>blocks/header.html</code> ïåðåìåííîé <code>$content</code>:</p>
<pre><code>$content = $template->getTemplate('blocks/header');</code></pre>

<a id="variables"><h3>Ïåðåìåííûå</h3></a>
<p>Âû ìîæåòå ïåðåäàòü â øàáëîí ïåðåìåííóþ ëþáîãî òèïà (âêëþ÷àÿ àññîöèàòèâíûå è ÷èñëîâûå ìàññèâû) ñ ïîìîùüþ ìåòîäà <code>setVar($key, $value)</code>:</p>
<pre><code>$template->setVar('title', 'Ïðèâåò, ìèð!');

$test = array('foo', 'sub' => array('bar', true, 3.5));
$template->setVar('test', $test);</code></pre>

<p>Çíà÷åíèå ïåðåìåííîé ìîæåò áûòü èçìåíåíî â ïðîöåññå âûïîëíåíèÿ øàáëîíà. ×òîáû ïîëó÷èòü íîâîå çíà÷åíèå èñïîëüçóéòå ìåòîä <code>getVar($key)</code>:</p>
<pre><code>echo $template->getVar('title');</code></pre>
<p>Äëÿ èçâëå÷åíèÿ îïðåäåëåííîãî ýëåìåíòà ìàññèâà ïðèìåíÿåòñÿ òî÷å÷íûé ñèíòàêñèñ:</p>
<pre><code>echo $template->getVar('test.0'); <span class="notice">// foo</span>
echo $template->getVar('test.sub.2'); <span class="notice">// 3.5</span></code></pre>
<p>Òî÷å÷íûé ñèíòàêñèñ ìîæíî èñïîëüçîâàòü è ñ ìåòîäîì <code>setVar()</code>, äëÿ òîãî ÷òîáû äîáàâèòü â ìàññèâ íîâûé ýëåìåíò èëè èçìåíèòü çíà÷åíèå ñóùåñòâóþùåãî, íå çàòðàãèâàÿ ìàññèâ öåëèêîì:</p>
<pre><code>$template->setVar('test.sub.0', 'Íîâîå çíà÷åíèå'); <span class="notice">// çàìåíÿåò "bar" íà "Íîâîå çíà÷åíèå"</span></code></pre>
<p><em>ÇÀÌÅÒÊÀ: Àññîöèàòèâíûå êëþ÷è ïðèîðèòåòíåé ÷èñëîâûõ. Íàïðèìåð, åñëè â ìàññèâå ñîäåðæàòñÿ ýëåìåíòû ñ êëþ÷àìè <code>2</code> è <code>"2"</code>, òî òî÷å÷íûé ñèíòàêñèñ óêàçûâàåò íà ïîñëåäíèé.</em></p>

<a id="caching"><h3>Êýøèðîâàíèå</h3></a>
<p>Øàáëîí êýøèðóåòñÿ (åñëè êýøèðîâàíèå âêëþ÷åíî) ïðè ïåðâîì âûçîâå ìåòîäà <code>getTemplate()</code>. Ïðè ïîñëåäóþùèõ âûçîâàõ áóäåò èñïîëüçîâàí êýø. Îí íå èìååò îãðàíè÷åíèé ïî âðåìåíè èëè êàêèõ-ëèáî ïðîâåðîê àêòóàëüíîñòè. Âñå ïðîñòî &mdash; åñëè êýø ñóùåñòâóåò, òî îí áóäåò èñïîëüçîâàí. Òàêèì îáðàçîì, åñëè âû èçìåíèëè øàáëîí (èëè ïîäêëþ÷åííûé ê íåìó ïîäøàáëîí), òî ÷òîáû ïîëó÷èòü àêòóàëüíûé ðåçóëüòàò ñóùåñòâóåò òðè âàðèàíòà:</p>
<ol>
<li>Îòêëþ÷èòü êýøèðîâàíèå, óñòàíîâèâ <code>$cacheEnabled = false</code>;</li>
<li>Óäàëèòü çàêýøèðîâàííûé ôàéë èç ïàïêè êýøà;</li>
<li>Âûçâàòü ìåòîä <code>getTemplate()</code>, óêàçàâ âòîðûì ïàðàìåòðîì <code>true</code>. Ýòî îçíà÷àåò, ÷òî âû õîòèòå îáíîâèòü êýø øàáëîíà.</li>
</ol>

<a id="errors"><h3>Îáðàáîòêà îøèáîê</h3></a>
<p>Óñòàíîâèòü óðîâåíü îòîáðàæåíèÿ îøèáîê ìîæíî ñ ïîìîùüþ PHP ôóíêöèè <code><a href="http://php.net/manual/en/function.error-reporting.php">error_reporting()</a></code>. Îäíàêî, äâà òèïà îøèáîê îáðàáàòûâàþòñÿ íåïîñðåäñòâåííî äâèæêîì Dextep. Ýòî îøèáêè "øàáëîí íå íàéäåí" è "çàöèêëåííîå ïîäêëþ÷åíèå ïîäøàáëîíà". Ïðè âîçíèêíîâåíèè îäíîé èç íèõ Dextep ïðîñòî îñòàíàâëèâàåò âûïîëíåíèå ñêðèïòà êîìàíäîé <code>die()</code>. Âû ìîæåòå ïåðåîïðåäåëèòü òàêîå ïîâåäåíèå, ïåðåïèñàâ ìåòîä <code>error()</code> ñ ó÷åòîì ñâîèõ ïîòðåáíîñòåé.</p>

<a id="syntax"><h2>Ñèíòàêñèñ øàáëîíîâ</h2></a>
<p>Òåãè Dextep îáðàìëÿþòñÿ ôèãóðíûìè ñêîáêàìè <code>{</code> è <code>}</code>. Ñîäåðæèìîå øàáëîíîâ âíå ýòèõ ñêîáîê îòîáðàæàåòñÿ áåç èçìåíåíèé. ×òîáû îòîáðàçèòü ôèãóðíóþ ñêîáêó <code>{</code> èëè <code>}</code>, èñïîëüçóéòå ñïåöèàëüíûé òåã <code>{lb}</code> èëè <code>{rb}</code> ñîîòâåòñòâåííî.</p>

<a id="comments"><h3>Êîììåíòàðèè</h3></a>
<p>Êîììåíòàðèè ïîëíîñòüþ èãíîðèðóþòñÿ è íà ðåçóëüòàòå âûïîëíåíèÿ øàáëîíà íå ñêàçûâàþòñÿ. Âû ìîæåòå çàêîììåíòèðîâàòü ëþáóþ ÷àñòü øàáëîíà, èñïîëüçóÿ ñëåäóþùèé ñèíòàêñèñ:</p>
<pre><code>{* Ýòî êîììåíòàðèé *}</code></pre>

<a id="expressions"><h3>Ïåðåìåííûå è âûðàæåíèÿ</h3></a>
<p>×òîáû îòîáðàçèòü çíà÷åíèå ïåðåìåííîé, ïðîñòî óêàæèòå åå èìÿ ñ ïðåôèêñîì <code>$</code>, çàêëþ÷èâ âñå ýòî â ôèãóðíûå ñêîáêè. Ýëåìåíò ìàññèâà ìîæåò áûòü îòîáðàæåí ñ ïîìîùüþ òî÷å÷íîãî ñèíòàêñèñà, îïèñàííîãî âûøå. Íàïðèìåð:</p>
<pre><code>{$title}
{$test.sub.0}</code></pre>
<p>Êðîìå òîãî, âû ìîæåòå èñïîëüçîâàòü âûðàæåíèÿ è ïðèñâàèâàòü çíà÷åíèÿ ïåðåìåííûì:</p>
<pre><code>
{$var = $array.key + 5}
{$a * (2 + $b)}</code></pre>
<p>Ïåðâîå âûðàæåíèå ïðèñâîèò âû÷èñëåííîå çíà÷åíèå ïåðåìåííîé <code>$var</code> è îòîáðàçèò åãî. Âòîðîå &mdash; òîëüêî îòîáðàçèò âû÷èñëåííîå çíà÷åíèå áåç êàêèõ-ëèáî ïðèñâîåíèé. Åñëè âàì íåîáõîäèìî óñòàíîâèòü çíà÷åíèå ïåðåìåííîé, íå îòîáðàæàÿ åãî, âîñïîëüçóéòåñü ïðåôèêñîì <code>@</code> ïåðåä âûðàæåíèåì:</p>
<pre><code>{@$b = 5}</code></pre>
<p>Îïåðàòîðû âûðàæåíèé â Dextep ïðàêòè÷åñêè èäåíòè÷íû îïåðàòîðàì â PHP. Ïîëíûé ñïèñîê ïðèâåäåí â <a href="#appendix">ïðèëîæåíèè</a>.</p>
<p><em>ÇÀÌÅÒÊÀ: Ñòðîêîâûå âûðàæåíèÿ ïîääåðæèâàþòñÿ íå ïîëíîñòüþ. Ìîæíî ñîåäèíÿòü ñòðîêîâûå ïåðåìåííûå îïåðàòîðîì <code>.</code> (òî÷êà), íî íåëüçÿ èñïîëüçîâàòü ñòðîêîâûå êîíñòàíòû. Òàêæå íåîáõîäèìî îñòàâëÿòü ïðîáåë ïåðåä îïåðàòîðîì <code>.</code> (òî÷êà), ÷òîáû èçáåæàòü ïóòàíèöû ñ òî÷å÷íûì ñèíòàêñèñîì â ìàññèâàõ:</em></p>
<pre><code>{$s = $test.0 . $test.sub.0}</code></pre>
<p>Ïåðåìåííûå ñ ïðåôèêñîì <code>$</code> â îñíîâíîì èñïîëüçóþòñÿ äëÿ ïåðåäà÷è çíà÷åíèé èç ñêðèïòà â øàáëîí. Îäíàêî, êàê ìîæíî óâèäåòü â âûøå, ïîçâîëÿåòñÿ èçìåíÿòü çíà÷åíèÿ è äàæå îïðåäåëÿòü íîâûå ïåðåìåííûå âíóòðè øàáëîíà â ïðîöåññå åãî âûïîëíåíèÿ. Âñå ýòè ïåðåìåííûå äîñòóïíû èç ñêðèïòà áëàãîäàðÿ ìåòîäó <code>getVar</code>. Åñëè æå íåîáõîäèìî îïðåäåëèòü ïåðåìåííóþ, íåäîñòóïíóþ èçâíå, òî âìåñòî <code>$</code> ñëåäóåò ïðèìåíÿòü ïðåôèêñ <code>%</code>:</p>
<pre><code>{%var = 2*$var}</code></pre>
<p>Çàìåòüòå, ÷òî ïåðåìåííûå <code>%var</code> è <code>$var</code> íå èäåíòè÷íû. Ïåðåìåííûå ñ ïðåôèêñîì <code>%</code> òàêæå èñïîëüçóþòñÿ ñ öèêëàìè <code>for</code> è <code>foreach</code> (ñì. íèæå).</p>
<p><em>ÇÀÌÅÒÊÀ: Âåðîÿòíî, âàì ïîíàäîáèòñÿ èñïîëüçîâàòü êàêóþ-ëèáî ïåðåìåííóþ â êà÷åñòâå èíäåêñà äëÿ ïîèñêà íóæíîãî ýëåìåíòà ìàññèâà. Çäåñü íåîáõîäèìî çàïîìíèòü, ÷òî ýòî âîçìîæíî òîëüêî ñ <code>%</code>-ïåðåìåííûìè. ×òîáû îáîéòè ýòî îãðàíè÷åíèå, ìîæíî ïîñòóïèòü ñëåäóþùèì îáðàçîì:</em></p>
<pre><code>{%i = $i}
{$array.%i}</code></pre>

<a id="if"><h3>Óñëîâèÿ <code>{if}</code></h3></a>
<p>Êîíñòðóêöèÿ <code>{if}</code> àíàëîãè÷íà <code>if</code> â PHP. Êàæäîìó òåãó <code>{if}</code> äîëæåí ñîîòâåòñòâîâàòü çàêðûâàþùèé òåã <code>{/if}</code>.  êà÷åñòâå óñëîâèÿ äîïóñêàþòñÿ ëþáûå âûðàæåíèÿ èëè ïåðåìåííûå:
<pre><code>{if $bool} Ýòîò òåêñò áóäåò îòîáðàæåí, òîëüêî åñëè âûðàæåíèå $bool èñòèííî {/if}</code></pre>
<p>Òàêæå äîïóñêàåòñÿ ïðèìåíåíèå òåãîâ <code>{else}</code> è/èëè <code>{elseif}</code>:</p>
<pre><code>{if $a &lt; 5} 
  Íèçêèé
{elseif $a &gt; 10}
  Âûñîêèé
{else}
  Ñðåäíèé
{/if}
</code></pre>

<a id="foreach"><h3>Öèêëû <code>{foreach}</code></h3></a>
Îïÿòü æå, êîíñòðóêöèÿ <code>{foreach}</code> â øàáëîíå ïðàêòè÷åñêè ñîîòâåòñòâóåò <code>foreach</code> â PHP. Îíà èñïîëüçóåòñÿ äëÿ îáõîäà àññîöèàòèâíîãî èëè ÷èñëîâîãî ìàññèâà. Êàæäîìó òåãó <code>{foreach}</code> äîëæåí ñîîòâåòñòâîâàòü çàêðûâàþùèé òåã <code>{/foreach}</code>:
<pre><code>{foreach $array as %item}
  Ýëåìåíò = {%item},
{/foreach}</code></pre>
<p>Íà ýòîì ïðèìåð ñòðîêà âíóòðè <code>{foreach}</code> ïîâòîðÿåòñÿ ñòîëüêî ðàç, ñêîëüêî ýëåìåíòîâ â ìàññèâå <code>$array</code>. Îáðàòèòå âíèìåíèå íà ïðåôèêñ <code>%</code> âòîðîé ïåðåìåííîé.  êàæäîé èòåðàöèè ïåðåìåííîé <code>%item</code> ïðèñâàèâàåòñÿ çíà÷åíèå ñîîòâåòñòâóþùåãî ýëåìåíòà ìàññèâà. Åñëè îíà áûëà îïðåäåëåíà äî <code>{foreach}</code>, òî ïåðâîíà÷àëüíîå çíà÷åíèå áóäåò óòåðÿíî. Äîñòóï ê êëþ÷àì ìàññèâà ðåàëèçóåòñÿ òàê æå, êàê è â PHP:</p>
<pre><code>{foreach $array as %key => %value}
  Çàìåòüòå, ÷òî çäåñü {$array.%key} &mdash; òîæå, ÷òî è {%value}
{/foreach}</code></pre>

<a id="for"><h3>Öèêëû <code>{for}</code></h3></a>
<p>Òåã <code>{for}</code> ïðèìåíÿåòñÿ äëÿ ïîâòîðåíèÿ êàêîé-ëèáî ÷àñòè øàáëîíà îïðåäåëåííîå ÷èñëî ðàç. Îí îáëàäàåò ÷åòûðìÿ îáÿçàòåëüíûìè àòòðèáóòàìè: <code>var</code> îïðåäåëÿåò èçìåíÿåìóþ ïåðåìåííóþ, <code>from</code> è <code>to</code> &mdash; ãðàíèöû ïîâòîðåíèé, à <code>step</code> &mdash; íàñêîëüêî áóäåò èçìåíÿòüñÿ çíà÷åíèå <code>var</code> ñ êàæäîé èòåðàöèåé. Òåãó <code>{for}</code> òàêæå äîëæåí ñîîòâåòñòâîâàòü çàêðûâàþùèé òåã <code>{/for}</code>:</p>
<pre><code>{for var=%i from=9 to=0 step=-2}
  {%i}
{/for}</code></pre>
<p>Ýòîò ïðèìåð âåðíåò ðåçóëüòàò "<samp>9 7 5 3 1</samp>".</p>
<p><em>ÇÀÌÅÒÊÀ: Àòòðèáóòû <code>from</code> è <code>to</code> ìîãóò áûòü òàêæå âûðàæåíèÿìè èëè ïåðåìåííûìè, íî <code>step</code> ìîæåò áûòü òîëüêî ÷èñëîì.</em></p>

<a id="include"><h3>Ïîäøàáëîíû</h3></a>
<p>Íàêîíåö, Dextep ïîçâîëÿåò ïîäêëþ÷àòü â øàáëîí ïîäøàáëîíû ñ ïîìîùüþ òåãà <code>{include}</code>:</p>
<pre><code>{include "subtemplate"}</code></pre>
<p>Èìÿ øàáëîíà ìîæåò áûòü çàêëþ÷åíî â îäèíàðíûå (') èëè äâîéíûå êàâû÷êè ("), õîòÿ ýòî è íå îáÿçàòåëüíî. Îáëàñòü âèäèìîñòè ïåðåìåííûõ ðàñïðîñòðàíÿåòñÿ íà ïîäøàáëîíû.</p>

<a id="appendix"><h2>Ïðèëîæåíèå. Âûðàæåíèÿ è îïåðàòîðû</h2></a>
<p><code>$a</code>, <code>$b</code> è <code>$c</code>, èñïîëüçóåìûå íèæå, ÿâëÿþòñÿ ïåðåìåííûìè, íî ìîãóò ïðåäñòàâëÿòü êîíñòàíòû è ïîäâûðàæåíèÿ (çà íåêîòîðûìè èñêëþ÷åíèÿìè, àíàëîãè÷íûìè ñèíòàêñèñó PHP).</p>
<table>
	<tr><td colspan="2"><h4>Àðèôìåòè÷åñêèå îïåðàòîðû:</h4></td></tr>
	<tr>
		<td><code>$a = $b</code></td>
		<td>Óñòàíàâëèâàåò ïåðåìåííóþ <code>$a</code> â çíà÷åíèå <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a . $b</code></td>		
		<td>Îáúåäèíÿåò ñòðîêîâûå ïåðåìåííûå <code>$a</code> è <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a + $b</code></td>		
		<td>Ñêëàäûâàåò <code>$a</code> è <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a - $b</code></td>
		<td>Âû÷èòàåò <code>$b</code> èç <code>$a</code></td>
	</tr>
	<tr>
		<td><code>$a * $b</code></td>
		<td>Óìíîæàåò <code>$a</code> íà <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a / $b</code></td>
		<td>Äåëèò <code>$a</code> íà <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a % $b</code></td>
		<td>Äåëèò <code>$a</code> íà <code>$b</code> è âîçâðàùàåò îñòàòîê äåëåíèÿ</td>
	</tr>
	<tr>
		<td><code>-$a</code></td>
		<td>Âîçâðàùàåò ÷èñëî, ïðîòèâîïîëîæíîå <code>$a</code></td>
	</tr>
	<tr>
		<td><code>++$a</code></td>
		<td>Ïðèáàâëÿåò åäèíèöó ê <code>$a</code> äî âû÷èñëåíèÿ âñåãî âûðàæåíèÿ</td>
	</tr>
	<tr>
		<td><code>--$a</code></td>
		<td>Âû÷èòàåò åäèíèöó èç <code>$a</code> äî âû÷èñëåíèÿ âñåãî âûðàæåíèÿ</td>
	</tr>
	<tr>
		<td><code>$a++</code></td>
		<td>Ïðèáàâëÿåò åäèíèöó ê <code>$a</code> ïîñëå âû÷èñëåíèÿ âñåãî âûðàæåíèÿ</td>
	</tr>
	<tr>
		<td><code>$a--</code></td>
		<td>SÂû÷èòàåò åäèíèöó èç <code>$a</code> ïîñëå âû÷èñëåíèÿ âñåãî âûðàæåíèÿ</td>
	</tr>
	<tr>
		<td><code>$a += $b</code></td>
		<td>Òî æå, ÷òî è <code>$a = $a + b</code></td>
	</tr>
	<tr>
		<td><code>$a -= $b</code></td>
		<td>Òî æå, ÷òî è <code>$a = $a - b</code></td>
	</tr>
	<tr>
		<td><code>$a *= $b</code></td>
		<td>Òî æå, ÷òî è <code>$a = $a * b</code></td>
	</tr>
	<tr>
		<td><code>$a /= $b</code></td>
		<td>Òî æå, ÷òî è <code>$a = $a / b</code></td>
	</tr>
	<tr><td colspan="2"><h4>Ëîãè÷åñêèå îïåðàòîðû:</h4></td></tr>
	<tr>
		<td><code>$a ? $b : $c</code></td>
		<td>Åñëè <code>$a</code> èñòèííî, òî âîçâðàùàåò <code>$b</code>, â ïðîòèâíîì ñëó÷àå âîçâðàùàåò <code>$c</code></td>
	</tr>
	<tr>
		<td><code>$a &amp;&amp; $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè èñòèííû îáà <code>$a</code> è <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a || $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè èñòèííî õîòÿ áû <code>$a</code> èëè <code>$b</code></td>
	</tr>
	<tr>
		<td><code>!$a</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè <code>$a</code> ëîæíî</td>
	</tr>
	<tr>
		<td><code>$a == $b</code></td>		
		<td>Âûðàæåíèå èñòèííî, åñëè çíà÷åíèÿ ðàâíû</td>
	</tr>
	<tr>
		<td><code>$a === $b</code></td>		
		<td>Âûðàæåíèå èñòèííî, åñëè çíà÷åíèÿ è òèïû äàííûõ ðàâíû</td>
	</tr>
	<tr>
		<td><code>$a != $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè çíà÷åíèÿ íå ðàâíû</td>
	</tr>
	<tr>
		<td><code>$a !== $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè çíà÷åíèÿ èëè òèïû äàííûõ íå ðàâíû</td>
	</tr>
	<tr>
		<td><code>$a &lt; $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè <code>$a</code> ìåíüøå <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a &gt; $b</code></td>		
		<td>Âûðàæåíèå èñòèííî, åñëè <code>$a</code> áîëüøå <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a &lt;= $b</code></td>		
		<td>Âûðàæåíèå èñòèííî, åñëè <code>$a</code> ìåíüøå ëèáî ðàâíî <code>$b</code></td>
	</tr>
	<tr>
		<td><code>$a &gt;= $b</code></td>
		<td>Âûðàæåíèå èñòèííî, åñëè <code>$a</code> áîëüøå ëèáî ðàâíî <code>$b</code></td>
	</tr>
</table>

<p>Òàêæå âû ìîæåòå ïåðåîïðåäåëÿòü ïîðÿäîê âû÷èñëåíèÿ ÷àñòåé âûðàæåíèÿ ñ ïîìîùüþ ñêîáîê <code>(</code> è <code>)</code>.</p>

<a id="credits"><h2>Ëèöåíçèîííîå ñîãëàøåíèå</h2></a>
<p>Ýòîò êëàññ ðàñïðîñòðàíÿåòñÿ ïîä ëèöåíçèåé BSD:</p>

<p>Copyright &copy; 2010, Alexey Burkov, <a href="http://www.exlab.net/">www.exlab.net</a></p>

<p>Ðàçðåøàåòñÿ ïîâòîðíîå ðàñïðîñòðàíåíèå è èñïîëüçîâàíèå êàê â âèäå èñõîäíîãî êîäà, òàê è â äâîè÷íîé ôîðìå, ñ èçìåíåíèÿìè èëè áåç, ïðè ñîáëþäåíèè ñëåäóþùèõ óñëîâèé:</p>
<ul>
	<li>Ïðè ïîâòîðíîì ðàñïðîñòðàíåíèè èñõîäíîãî êîäà äîëæíî îñòàâàòüñÿ óêàçàííîå âûøå óâåäîìëåíèå îá àâòîðñêîì ïðàâå, ýòîò ñïèñîê óñëîâèé è ïîñëåäóþùèé îòêàç îò ãàðàíòèé.</li>
	<li>Ïðè ïîâòîðíîì ðàñïðîñòðàíåíèè äâîè÷íîãî êîäà äîëæíà ñîõðàíÿòüñÿ óêàçàííàÿ âûøå èíôîðìàöèÿ îá àâòîðñêîì ïðàâå, ýòîò ñïèñîê óñëîâèé è ïîñëåäóþùèé îòêàç îò ãàðàíòèé â äîêóìåíòàöèè è/èëè â äðóãèõ ìàòåðèàëàõ, ïîñòàâëÿåìûõ ïðè ðàñïðîñòðàíåíèè.</li>
	<li>Íè íàçâàíèå www.exlab.net, íè èìåíà åå ñîòðóäíèêîâ íå ìîãóò áûòü èñïîëüçîâàíû â êà÷åñòâå ïîääåðæêè èëè ïðîäâèæåíèÿ ïðîäóêòîâ, îñíîâàííûõ íà ýòîì ÏÎ áåç ïðåäâàðèòåëüíîãî ïèñüìåííîãî ðàçðåøåíèÿ.</li>
</ul>

<p>ÝÒÀ ÏÐÎÃÐÀÌÌÀ ÏÐÅÄÎÑÒÀÂËÅÍÀ ÂËÀÄÅËÜÖÀÌÈ ÀÂÒÎÐÑÊÈÕ ÏÐÀ È/ÈËÈ ÄÐÓÃÈÌÈ ÑÒÎÐÎÍÀÌÈ &laquo;ÊÀÊ ÎÍÀ ÅÑÒÜ&raquo; ÁÅÇ ÊÀÊÎÃÎ-ËÈÁÎ ÂÈÄÀ ÃÀÐÀÍÒÈÉ, ÂÛÐÀÆÅÍÍÛÕ ßÂÍÎ ÈËÈ ÏÎÄÐÀÇÓÌÅÂÀÅÌÛÕ, ÂÊËÞ×Àß, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÈÌÈ, ÏÎÄÐÀÇÓÌÅÂÀÅÌÛÅ ÃÀÐÀÍÒÈÈ ÊÎÌÌÅÐ×ÅÑÊÎÉ ÖÅÍÍÎÑÒÈ È ÏÐÈÃÎÄÍÎÑÒÈ ÄËß ÊÎÍÊÐÅÒÍÎÉ ÖÅËÈ. ÍÈ Â ÊÎÅÌ ÑËÓ×ÀÅ, ÅÑËÈ ÍÅ ÒÐÅÁÓÅÒÑß ÑÎÎÒÂÅÒÑÒÂÓÞÙÈÌ ÇÀÊÎÍÎÌ, ÈËÈ ÍÅ ÓÑÒÀÍÎÂËÅÍÎ Â ÓÑÒÍÎÉ ÔÎÐÌÅ, ÍÈ ÎÄÈÍ ÂËÀÄÅËÅÖ ÀÂÒÎÐÑÊÈÕ ÏÐÀÂ È ÍÈ ÎÄÍÎ ÄÐÓÃÎÅ ËÈÖÎ, ÊÎÒÎÐÎÅ ÌÎÆÅÒ ÈÇÌÅÍßÒÜ È/ÈËÈ ÏÎÂÒÎÐÍÎ ÐÀÑÏÐÎÑÒÐÀÍßÒÜ ÏÐÎÃÐÀÌÌÓ, ÊÀÊ ÁÛËÎ ÑÊÀÇÀÍÎ ÂÛØÅ, ÍÅ ÍÅÑ¨Ò ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ, ÂÊËÞ×Àß ËÞÁÛÅ ÎÁÙÈÅ, ÑËÓ×ÀÉÍÛÅ, ÑÏÅÖÈÀËÜÍÛÅ ÈËÈ ÏÎÑËÅÄÎÂÀÂØÈÅ ÓÁÛÒÊÈ, ÂÑËÅÄÑÒÂÈÅ ÈÑÏÎËÜÇÎÂÀÍÈß ÈËÈ ÍÅÂÎÇÌÎÆÍÎÑÒÈ ÈÑÏÎËÜÇÎÂÀÍÈß ÏÐÎÃÐÀÌÌÛ (ÂÊËÞ×Àß, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÏÎÒÅÐÅÉ ÄÀÍÍÛÕ, ÈËÈ ÄÀÍÍÛÌÈ, ÑÒÀÂØÈÌÈ ÍÅÏÐÀÂÈËÜÍÛÌÈ, ÈËÈ ÏÎÒÅÐßÌÈ ÏÐÈÍÅÑÅÍÍÛÌÈ ÈÇ-ÇÀ ÂÀÑ ÈËÈ ÒÐÅÒÜÈÕ ËÈÖ, ÈËÈ ÎÒÊÀÇÎÌ ÏÐÎÃÐÀÌÌÛ ÐÀÁÎÒÀÒÜ ÑÎÂÌÅÑÒÍÎ Ñ ÄÐÓÃÈÌÈ ÏÐÎÃÐÀÌÌÀÌÈ), ÄÀÆÅ ÅÑËÈ ÒÀÊÎÉ ÂËÀÄÅËÅÖ ÈËÈ ÄÐÓÃÎÅ ËÈÖÎ ÁÛËÈ ÈÇÂÅÙÅÍÛ Î ÂÎÇÌÎÆÍÎÑÒÈ ÒÀÊÈÕ ÓÁÛÒÊÎÂ.</p>
</body>
</html>
Return current item: Dextep Template Engine