Кожен РНР–скрипт являє собою набір конструкцій. Конструкцією може бути присвоювання, виклик функції, повтор коду (цикл), порівняння, а також конструкція яка нічого не робить (пустий оператор).
Конструкція завершується крапкою з комою. Крім того конструкції обєднюються в блоки заключаючи їх в фігорні дужки. Блок конструкцій — це також конструкція. В програмуванні РНР конструкції позволяють визначити умови і потім запустити деякі операції в залежності від запиту.
В даному розділі описуються різні типи конструкцій.
Приведені керуючі конструкції РНР, обєднанні в групи згідно з їх призначенням:
⇒ умовні оператори
if;
else;
elseif;
⇒ цикли
while;
for;
foreach;
break;
continue;
⇒ конструкції вибору
switch–case;
⇒ конструкції включення
require()
include()
Більш детальний опис кожної конструкції
⇒ умовний оператор if
Умовний оператор який найчастіше використовується і має наступний синтаксис:
if(умова) {інструкції виконуються, якщо умова виконана}
Умова завжди вписується в круглі дужки, а інструкції які виконуються, якщо умови передбачені, заключені в фігурні дужки. Невиконання умови передбачає виконання, яке слідує після закриття фігурних дужок.
В прикладі нижче показані дві змінні, де можна порівняти дві змінні, і покажемо повідомлення .
<?PHP
$A=4;
$B=3;
echo “$a=4<br>”;
echo “$b=3<br>”;
if ($a>$B) {
echo “$a>$B”;
}
?>
Браузер виведе
4=4
3=3
4>3
умовний оператор else
Другий умовний оператор — це else. Else вказує, що виконається, в випадку якщо умова інструкції if не буде виконана, синтаксис наступний:
if(умова){інструкції виконані, якщо виконана умова;}else{інструкції виконані, якщо не виконана умова;}
В прикладі нижче порівняємо дві змінні, і предявимо повідомлення.
<?PHP
$a=3;
$b=5;
echo “$a=3<br>”;
echo “$a=5<br>”;
if ($a>$b) {
echo “$a>$b”;
}else{
echo “$a<$b”;}
?>
Браузер відобразить
3=3
5=5
3<5
конструкція elseif
Наступна конструкція — це elseif, комбінація між if і else. В випадку якщо умова if не виконується, вводиться elseif, яка тестує ще одну умову. Якщо не виконується друга умова, вводиться декларація, введена за допомогою else.
if (умова 1){інструкції виконуються, якщо виконана умова1;} elseif(умова 2){інструкції виконуються, якщо виконана умова 2;} else {інструкції виконуються, якщо не виконана умова 2;}
Приклад
<?PHP
$A=29;
$B=33;
iF($A<$B) {
echo “$A<$B”;
} elsif ($a==$b) {
echo “$a==$b;
}else{ echo “$a>$b;
}
?>
Браузер відобразить
29<33
Конструкція switch
Конструкція switch аналогічна оператору if но завжди умова охоплює більше двох значень.
В прикладі нижче використовуючи switch ми переводимо номер дня в його назву.
<?PHP
$день=4
echo $день;
echo “<br>”;
switch ($день) {
case 1:
echo “Понеділок”;
break;
case 2:
echo “Вівторок”;
break;
case 3:
echo “Середа”;
break;
case 4:
echo “Четверг”;
break;
case 5:
echo “Пятниця”;
break;
case 6:
echo “Субота”;
break;
case 7:
echo “Неділя”;
break;
}
?>
Браузер інтерпретує
4 Четверг
While
Це інструкція типу цикл. Цикл буде повторюватись до тих пір, поки умова не буде TRUE (істиною).
<?PHP
$число=1;
while ($число<=5) {
echo $число.”<br>”;
$число++;
}
?>
Браузер відобразить
1 2 3 4 5
Конструкція for
Конструкція for також являється конструкцією типу цикл. Дана конструкція має наступний синтаксис:
for(вираз1;вираз2;вираз3;) {команди для виконання;}
Приклад
<?PHP
for ($x=0; $x++<10;) echo $x;
// Виведе 12345678910
?>
foreach
Foreach представляє собою різновидність конструкції for і призначена для спрощення перебору елементів массиву.
Використовує насиупний синтаксис:
foreach($массив as$ключ=>$значення){команди для виконання;}
або
foreach($массив as $значення){команди для виконання;}
Приклад
<?PHP
$ПЕРСОНАЛ = array(
“Сидоров” => директор
“Петров” => бухгалтер
“Клава” => економіст
“Петруха” => секретар
);
foreach ($персонал as $імя => $посада) {
echo “$імя=> $посада<br>”;
}
?>
Браузер покаже
Сидоров => директор
Петров => бухгалтер
Клава => економіст
Петруха => секретар
break
Break припиняє примусове виконання структур for, foreach, while, do, while або switch. Break приймає необовязковий числовий аргумент з вказаною кількістю структур, дія яких припиняється.
В прикладі нижче при i=5 припиняється виконання цикла.
Приклад
<?PHP for ($i=0; ;$i++) {
if ($i>) {
break;
}
echo $i.”<br>”;
}
?>
Браузер відобразить
0 1 2 3 4 5
Функція continue
Функція continue пропускає інтерацію(проходження циклу) даного циклу і продовжує виконувати з початку наступної інтерації. Крім того, continue може приймати і числовий аргумент, який вкаже, яка кількість циклів повинна бути пропущена.
В прикладі нижче пропускається виконання i==5
<?PHP
for ($i=0;$i<8;$i++) {
if ($i==5)
continue
echo $i.”<br>”;
}
?>
Браузер відобразить
0 1 2 3 4 5 6 7
Конструкції включень require i include
Конструкції включень позволяють збирати РНР–програму (скрипт) з декількох одних файлів. В РНР існують дві основні конструкції включень: require i include
Конструкція включень require
Конструкція require дозволяє включати файли в сценарій РНР до виконання сценарію РНР. ХЗагальний синтаксис такий:
require імя_файлу
Інтерпетатор при запуску (слід звернути увагу при запуску а не при виконанні) програми заміняє дану інструкцію на вміст файлу імя_файлу (цей файл може також містити сценарій РНР, як зазвичай навколо теги<? i ?>. Стається це перед запуском програми. Дану конструкцію часто використовуюють для включееня в вивод сценарію різних шаблонних сторіно з HTML–кодом.
Конструкція включень include
Конструкція include також призначена для включення файлів в код сценарію РНР.
Конструкція include дозволяє включати файли в код РНР скрипта під час виконання сценарію ( на відміну від конструкцій rerquire).
Синтаксис конструкції incluade:
incluade імя_файла
РНР відображає сценарій в внутрішньому прояву, аналізує рядки сценарію по черзі, поки не дійде до конструкції incluade. Дійшовши до incluade, РНР припиняє транспортувати сценарій і переключається на вказаний incluade файл.
Із за подібної поведінки транслятора швидкодія сценарію знижується, особливо при великій кількості включаємих з допомогою incluade файлів. З require ТАКИХ ПРОБЛЕМ НЕ ІСНУЄ, оскільки файли з допомогою require включаються до виконання сценарію, так як на момент трансляції файл уже включений в сценарій.
Таким чином доцільніше використовувати конструкцію require там де не потрібно динамічного включення файлів в сценарій, а конструкцію incluade використовувати тільки з ціллю динамічного включення файлів в еод РНР–скрипта.
В кінці цієї сторінки посилання на публікації про елементи основані на РНР.