ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур

(PHP 4, PHP 5, PHP 7, PHP 8)

PHP ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур языка, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅: if, while, for, foreach ΠΈ switch. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ структуры Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ синтаксиса ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΡƒΡ‚Ρ‘ΠΌ измСнСния ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки Π½Π° Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ :, Π° Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ β€” Π½Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, которая соотвСтствуСт названию структуры: endif;, endwhile;, endfor;, endforeach; ΠΈΠ»ΠΈ endswitch;.

<?php if ($a == 5): ?>
A Ρ€Π°Π²Π½ΠΎ 5
<?php endif; ?>

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, HTML-Π±Π»ΠΎΠΊ "A Ρ€Π°Π²Π½ΠΎ 5" Π²Π»ΠΎΠΆΠΈΠ»ΠΈ Π² конструкции if, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ записали Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ синтаксисом. Π‘Π»ΠΎΠΊ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ отобразится, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли пСрСмСнная $a Ρ€Π°Π²Π½Π° 5.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся ΠΊ конструкциям else ΠΈ elseif. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ структуру конструкции if с конструкциями elseif ΠΈ else Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

<?php

if ($a == 5):
echo
"Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a Ρ€Π°Π²Π½ΠΎ 5";
echo
"...";
elseif (
$a == 6):
echo
"Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a Ρ€Π°Π²Π½ΠΎ 6";
echo
"!!!";
else:
echo
"Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΠΈ 5, Π½ΠΈ 6";
endif;

?>

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

БмСшиваниС синтаксиса Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅ управлСния Π½Π΅ поддСрТиваСтся.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

Π›ΡŽΠ±ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΌΠ΅ΠΆΠ΄Ρƒ инструкциСй switch ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ инструкциСй case Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис нСдопустим:

<?php switch ($foo): ?>
<?php case 1: ?>
// ...
<?php endswitch; ?>

ΠŸΡ€ΠΈ этом ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ содСрТит допустимый ΠΊΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ символ Π½ΠΎΠ²ΠΎΠΉ строки послС инструкции switch PHP рассматриваСт ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Π³Π° ?> ΠΈ поэтому ΠΌΠ΅ΠΆΠ΄Ρƒ инструкциями switch ΠΈ case Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ выводится:

<?php switch ($foo): ?>
<?php
case 1: ?>
...
<?php endswitch; ?>

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ приводят страницы описания Ρ†ΠΈΠΊΠ»ΠΎΠ² while ΠΈ for, ΠΈ конструкци if.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
23
toxyy ΒΆ
4 years ago
I feel compelled to give a more elegant way using heredoc than the other comment:

<ul>
<?php foreach($list as $item): echo
<<<ITEM
    <li id="itm-$item[number]">Item $item[name]</li>
ITEM;
endforeach; ?>
</ul>

Which works better with multi line blocks, as you only need one overall php tag.

(please don't omit the closing </li> tag despite it being legal, personal preference)