Встраивание в HTML

PHP-скрипты встраиваются в HTML-код. Возникает вопрос, каким образом? Есть несколько способов. Один из них приведен в самом первом примере – с помощью открывающего тега <?php и закрывающего тега ?>.

Такого вида специальные теги позволяют переключаться между режимами HTML и PHP. Этот синтаксис наиболее предпочтителен, поскольку позволяет задействовать PHP в XML-совместимых программах (например, написанных на языке XHTML), но тем не менее можно использовать следующие альтернативные варианты (команда echo "Some text"; выводит на экран текст «Some text».):

1.

<? echo "Это простейшая
инструкция для
обработки PHP"; ?>

2.

<script language="php"> 
echo "Некоторые редакторы
(FrontPage) предпочитают
делать так";
</script>

3.

<% echo "Можно использовать теги
в стиле ASP "; %>

Первый из этих способов не всегда доступен. Чтобы им пользоваться, нужно включить короткие теги либо с помощью функции short_tags() для PHP 3, либо включив установку short_open_tag в конфигурационном файле PHP, либо скомпилировав PHP с параметром --enable-short-tags. Даже если это включено по умолчанию в php.ini-dist, использование коротких тегов не рекомендуется. Второй способ аналогичен вставке, например, JavaScript-кода и использует для этого соответствующий html тег. Поэтому использовать его можно всегда, но это делается редко из-за его громоздкости. Третий способ можно применить, только если теги в стиле ASP были включены, используя конфигурационную установку asp_tags.

Когда PHP обрабатывает файл, он просто передает его текст, пока не встретит один из перечисленных специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет внедрять PHP-код в HTML – все за пределами тегов PHP остается неизменным, тогда как внутри интерпретируется как код. Заметим также, что php-файл не похож на CGI-скрипт. Php файл не должен быть исполнимым или еще каким-либо образом помеченным.

Для того чтобы отправить php-файл на обработку серверу, нужно в строке браузера набрать путь к этому файлу на сервере. Скрипты php должны располагаться там, где разрешен доступ через www, например там же, где лежит домашняя страничка. Если php-файл лежит на локальной машине, то его можно обработать с помощью интерпретатора командной строки.

if

Позволяет организовывать выполнение фрагментов кода по условию.

Синтаксис:

if (выражение) statement

Может иметь неограниченную степень вложенности в другие IF.

if($a > $b) print "$a больше $b";
<?php
if($a > $b) {
echo "$a больше $b";
$b=$a;
}
?>

switch

Сравнивает переменную или выражение с различными значениями и выполняет различные фрагменты кода в зависимости от того, чему будет равно значение выражения.

<?php
switch ($a) {
case 0:
echo "A равно 0";
break;
case 1:
echo "A равно 1";
break;
case 2:
echo "A равно 2";
break;
default:
echo "A не равно 0, 1, 2";
}
?>

default - соответствует всем значениям, которые не удовлетворяют другим CASE.

CASE - могут быть любого скалярного типа, т.е. целые числа или числа с плавающей запятой и строки.

require

Заменяет себя содержимым указанного файла.

Пример:

require("include.inc");

Но его нельзя поместить внутрь цикла и ожидать, что он включит содержимое другого файла несколько раз в процессе каждой итерации. Для этого есть INCLUDE.

include

Вставляет и выполняет содержимое указанного файла.

<?php
$files = array ("first.inc", "second.inc", "third.inc");
for ($a = 0; $a < count($files); $a++) {
include($files[$a]);
}
?>

Так как INCLUDE() это специальный оператор, требуется заключать его в фигурные скобки при использовании внутри условного оператора.

<?php
if ($a < 5) {
include("file_1.inc");
} else {
include("file_2.inc");
}
?>

else

Расширяет возможности IF по части обработки вариантов выражения, когда оно равно FALSE.

Выражение ELSE выполняется только если IF равно FALSE.

if($a>$b) {
echo "a больше b";
} else {
echo "a меньше b";
}

elseif

Является комбинацией IF и ELSE.

Позволяет выполнить выражение, если значение IF равно FALSE, но в отличии от ELSE оно выполнится, если выражение ELSEIF равно TRUE.

if ($a > $b) {
echo "a больше b";
}
elseif ($a == $b) {
echo "a равно b";
} else {
echo "a меньше b";
}

if ... endif

Один из возможных вариантов группирования операторов с оператором IF.

Удобно при внедрении больших блоков HTML-кода внутрь оператора IF.

if ($a == 1):
echo "a равно 1";
elseif ($a == 2):
echo "a равно 2";
else:
echo "а не равно 1 и 2";
endif;

<?php if ($a==5):?>
A=5
<?php endif;?>

Блок HTML-кода A=5 будет виден, если выполнется условие $a==5

while

Простейший тип цикла в PHP.

Заставляет PHP выполнять вложенные операторы до тех пор, пока условие равно TRUE. Если условие равно FALSE с самого начала, то цикл не выполнится не разу.

Синтаксис:

WHILE(условие)выражения

Можно сгруппировать несколько операторов внутри фигурных скобок или использовать альтернативный синтаксис:

WHILE(условие)выражения... ENDWHILE; 

<?php
$a=1;
while ($a <= 5) {
echo $a++;
}
?>

<?php
$a = 1;
while($a <= 5):
echo $a;
$a++;
endwhile;
?>

Эти два примера выводят номера с 1 до 5.

do_while

Цикл, аналогичный WHILE, но значение логического выражения проверяется не до, а после окончания итерации.
Основное отличие - то что цикл хоть один раз но выполнится.

<?php
$a = 1;
do {
echo $a;
} while ($a > 1);
?>

Можно прекратить использовать блок операторов в середине путем внедрения оператора BREAK в цикл DO..WHILE(0):

<?php
do {
if ($a == 5) {
echo "A равно 5"
break;
}
$a *= $b;
if ($a < $minimum) {
break;
}
echo "A равен $a";
} while(0);
?>

for

Наиболее мощный цикл в PHP.

Синтаксис:

FOR (условие1; условие2; условие3) выражения

условие1 - Безусловно выполняется (вычисляется) в начале цикла

условие2 - Проверяется в начале каждой итерации.
Если оно равно TRUE, то цикл продолжается и выполняются вложенные операторы.
Если оно равно FALSE, то цикл заканчивается.

условие3 - Выполняется (вычисляется) в конце каждой итерации.

Каждое из этих условий может быть пустым.

Пример1:

for ($a = 1; $a <= 5; $a++) {
echo $a;
}

Пример 2:

for ($a = 1;;$a++) {
if ($a > 5) {
break;
}
echo $a;
}

Пример 3:

$a = 1;
for (;;) {
if ($a > 5) {
break;
}
print $a;
$a++;
}

Пример 4:

for ($a = 1; $a <= 5; print $a, $a++);

PHP поддерживает альтернативный синтаксис FOR:

FOR(усл1; уcл2; усл3;):
операторы;...;
ENDFOR;

break

Прерывает выполнение текущего цикла.

Пример:

$a = 0;
while ($a < 5) {
if ($arr[$a] == "stop") {
break;
}
$a++;
}

continue

Переходит на начало ближайшего цикла.

<?php
while (list($key,$value) = each($arr)) {
if ($key % 2) {
continue;
}
do_something_odd ($value);
}
?>