PHP

PHP

Commander Shepard

Конструкції РНР

Кожен РНР–скрипт являє собою набір конструкцій. Конструкцією може бути присвоювання, виклик функції, повтор коду (цикл), порівняння, а також конструкція яка нічого не робить (пустий оператор).

Конструкція завершується крапкою з комою. Крім того конструкції обєднюються в блоки заключаючи їх в фігорні дужки. Блок конструкцій — це також конструкція. В програмуванні РНР конструкції позволяють визначити умови і потім запустити деякі операції в залежності від запиту.

В даному розділі описуються різні типи конструкцій.

Приведені керуючі конструкції РНР, обєднанні в групи згідно з їх призначенням:

⇒ умовні оператори

  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 використовувати тільки з ціллю динамічного включення файлів в еод РНР–скрипта.