Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PI_lektsii_2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆
    1. Висновок

Отже, в цій лекції ми познайомилися з основами синтаксису мови PHP, навчилися працювати зі змінними різних типів, константами, операторами, познайомилися з усіма існуючими в PHP типами даних. Говорячи про ці типи даних, як рядки і масиви, ми розібрали тільки самі основи. Ці конструкції настільки зручні і прості у використанні, що заслуговують на окрему розмову. Подробиці будуть викладені в наступних лекціях. Вирішуючи завдання, ми намагалися використовувати тільки наявні знання і не забігати вперед, тому рішення не дуже підходить для практичного застосування. У наступній лекції ми виправимо цей недолік і створимо більш універсальний шаблон електронного листа.

Матеріал з сайту: MegaWEB.ORG.RU

  1. Керуючі конструкції рнр

Питання для вивчення

  1. Умовні оператори

  2. Цикли

  3. Оператори передачі управління

  4. Оператори включення

В лекції розглядаються умовні оператори (if, switch), робота з циклами (while, for, foreach) і використання функцій include, require. Приклад - універсалізація листа в залежності від ситуації та його відправка кожному з групи користувачів.

    1. Умовні оператори

Оператор if – дозволяє вибирати одне з двох напрямків обчислень в залежності від умови. Структура оператора if має вигляд:

if (вираз) оператор1;

else

оператор2;

Тут вираз – це будь-який правильний PHP-вираз (тобто все, що має значення). В процесі обробки скрипта вираз перетвориться до логічного типу. Якщо в результаті перетворення значення виразу істинно (True), то виконується оператор1. В іншому випадку виконується оператор2. Замість оператора1 або оператора2 можна підставляти складовою оператор, що містить кілька операторів, які укладені у фігурні дужки {}.

Правила перетворення виразу до логічного типу

  1. В FALSE перетворюються наступні значення:

    1. логічне False;

    2. цілий нуль (0);

    3. дійсний нуль (0.0);

    4. порожній рядок і рядок "0";

    5. масив без елементів;

    6. об'єкт без змінних (докладно про об'єкти буде розказано в одній з наступних лекцій);

    7. спеціальний тип NULL.

  1. Всі інші значення перетворюються в TRUE.

Приклад (замінити):

<?php

$names = array("іван","петро","семен");

if ($names[0]=="іван")

{

echo "привіт, ваня!";

$num = 1;

$account = 2000;

}

if ($num) echo "іван перший у списку!";

$bax = 30;

if ($account > 100*$bax+3)

echo 'цей рядок не з'явиться на екрані,'.

'так як умову не виконано';

?>

Слово else і оператор2 можуть бути відсутніми. В цьому випадку якщо значення виразує false, то нічого не відбувається, а відбувається перехід до наступного оператору в програмі.

Подивимося, як можна змінити попередній приклад, враховуючи необхідність здійснення дій та у разі невиконання умови. Приклад:

<?php $names = array("іван","петро","семен");

if ($names[0]=="іван")

{ echo "привіт, ваня!";

$num = 1;

$account = 2000;

} else echo "привіт, $names[0]. а ми чекали ваню :(";

if ($num) echo "іван перший у списку!";

else echo "іван не перший у списку?!";

$bax = 30;

if ($account > 100*$bax+3)

echo "цей рядок не з'явиться на екрані, так як умову не виконано";

else echo "зате з'явиться рядок!";?>

Оператор if ... elseif – призначений для вибору одного з декількох обчислень. Структура оператора має вигляд:

if (вираз1) оператор1;

elseif (вираз2) оператор2;

... else операторN;

Порядок виконання оператора:

  1. Перевіряється значення виразу1.

  2. Якщо значення виразу1 True, то виконується оператор1 і здійснюється вихід з оператора if ... elseif.

  3. Якщо значення виразу1 False, то перевіряється значення виразу2. (Вираз в наступному рядку elseif) і т.д.

  4. Якщо вираз1 помилковий і помилкові всі вирази в рядках elseif, то виконується оператор, записаний після слова else.

Приклад:

<? Php

$ Names = array ("Іван", "Петро", "Семен");

if ($ names [0] == "Іван")

{// Якщо перше ім'я в масиві Іван

echo "Привіт, Ваня!";

}

elseif ($ names [0] == "Петро")

{// Якщо перше ім'я не Іван, а Петро

echo "Привіт, Петя!";

}

elseif ($ names [0] == "Семен")

{// Якщо перше ім'я не Іван, що не Петро, а Семен

echo "Привіт, Сеня!";

}

else

{// Якщо перше ім'я не Іван, що не Петро і не Семен

echo "Привіт, $ names [0]. А ти хто такий?";

Альтернативний синтаксис:

PHP пропонує альтернативний синтаксис для деяких своїх керуючих структур, а саме для if, while, for, foreach і switch. У кожному разі відкриваючу дужку треба замінити на двокрапка (:), а закриваючу – на endif;, endwhile; і т. д. відповідно. Наприклад, синтаксис оператора if можна записати таким чином:

if(вираз): блок_виконання endif;

Умова залижається:

  • якщо умова, записана в круглих дужках оператора if, виявилася істиною, буде виконуватися весь код, від двокрапки «:» до команди endif;. Використання такого синтаксису корисно при встановленні php в html-код. <? Php

$ Names = array ("Іван", "Петро", "Семен");

if ($ names [0] == "Іван"): echo 'Привіт, Ваня!'; endif; ?>

-якщо використовуються конструкції else і elseif, то також можна задіяти альтернативний синтаксис:

<? Php

if ($ a == 5):print "a дорівнює 5";

print "...";

elseif ($ a == 6): print "a дорівнює 6";

print "!!!";

else:

print "a не дорівнює ні 5, ні 6";

endif;

?>

Оператор switch – призначений для вибору одного з декількох напрямків вичислений в залежності від значення керуючої змінної або виразу. Структура оператора switch має наступний вигляд: switch (вираз або змінна) Приклад:

{case значення1:

оператор1

case значення-2:

оператор_2

break;

... default: оператор_за_замовчуванням }

print "...";

elseif ($a == 6):

print "a дорівнює 6";

print "!!!";

else:

print "a не дорівнює ні 5, ні 6";

endif; ?>

Порядок виконання оператора:

  1. Обчислюється значення виразу або змінної.

  2. Значення виразу або змінної по черзі порівнюється зі значеннями, записаними після слів case:

    • Якщо значення змінної або виразу збігається зі значенням, записаному після відповідного слова case, виконується оператор, записаний після слова case і оператор break, який здійснює вихід з блоку switch (перехід до наступного оператору програми).

    • Якщо значення змінної або виразу не дорівнює жодному із значень, записаних після слів case, то виконується оператор за замовчуванням, записаний після слова default.

Вище наведений приклад можна переписати з використанням switch наступним чином:

<?php $names = array("Іван","Петро","Семен");

switch ($names[0])

{

case "Іван":

echo "Привіт, Ваня!";

break; case "Петро":

echo "Привіт, Петя!";

break; case "Семен":

echo "Привіт, Сеня!";

break; default:

echo "Привіт, $names[0]. А як Вас звуть?";

} ?>

Начало формы

Конец формы

Якщо в цьому прикладі опустити оператор break, наприклад, в case "Петро" :, то, якщо змінна виявиться рівною рядку "Петро", після виведення на екран повідомлення "Привіт, Петя!" програма піде далі і виведе також повідомлення "Привіт, Сеня!" і тільки потім, зустрівши break, продовжить своє виконання за межами switch.

Для конструкції switch, як і для if, можливий альтернативний синтаксис, де відкриваюча switch фігурна дужка замінюється двокрапкою, а закриваюча - endswitch; відповідно.

    1. Цикли

Для організації циклічних обчислювальних процесів в PHP існує кілька операторів: for, foreach, while, do..while.

Оператор for – призначений для організації циклічних обчислювальних процесів, як правило, з відомим числом повторень. Структура оператора:

for (вираз1; вираз2; вираз3) оператор;

Порядок виконання оператора:

  1. Обчислюється значення виразу1. Зазвичай в цьому виразі присвоюється початкове значення керуючої змінної циклу. Наприклад, $ i = 1.

  2. Обчислюється значення виразу2. Зазвичай це логічний вираз, в лівій частині якого записана керуюча змінна циклу. Наприклад, $ i <10. Якщо значення цього виразу true, то виконується оператор, в іншому випадку відбувається вихід з циклу і перехід до наступного оператору в програмі.

  3. Після виконання оператора обчислюється значення виразу3. Зазвичай це оператор, що змінює значення керуючої змінної циклу. Наприклад, $ i ++.

  4. Перехід до кроку 2.

  5. Кожне з виразів 1, 2, 3 може бути порожнім. Якщо вираз_2 є порожнім, то це означає, що цикл повинен виконуватися невизначений час (в цьому випадку PHP вважає цей вираз завжди істинним). Це не так марно, як здається, адже цикл можна зупиняти, використовуючи оператор break. Наприклад, всі парні цифри можна вивести з використанням циклу for таким чином: Кожне з виразів 1, 2, 3 може бути порожнім. Якщо вираз_2 є порожнім, то це означає, що цикл повинен виконуватися невизначений час (в цьому випадку PHP вважає цей вираз завжди істинним). Це не так марно, як здається, адже цикл можна зупиняти, використовуючи оператор break.

Наприклад, всі парні цифри можна вивести з використанням циклу for таким чином:

<?РНР

для ($я=0; $я<10; $я++)

{ // друкуємо парні числа

якщо ($я % 2 == 0) Print $і я;

} ?>

Приклад. Якщо опустити другий вираз (умова $i<10), то таку ж задачу можна вирішити, зупиняючи цикл оператором break.

<? Рhp

for ($ i = 0;; $ i ++)

{

// якщо $ i більше або дорівнює 10,

 // то припиняємо роботу циклу

if ($ i> = 10) break;

 // якщо число парне, то друкуємо його

if ($ i% 2 == 0) print $ i;

} ?>

Приклад. Можна опустити всі три вирази. У цьому випадку просто не буде задане початкове значення лічильника $i і воно не буде змінюватися кожен раз в кінці циклу. Всі ці дії можна записати у вигляді окремих команд або в виконаному операторі, або перед циклом:

<? Рhp

// початкове значення лічильника

$ I = 0;

for (;;)

{// якщо $ i більше або дорівнює 10,

// то припиняємо роботу циклу

if ($ i> = 10) break;

 // якщо число парне, то друкуємо його

if ($ i% 2 == 0) print $ i;

 // збільшуємо лічильник на одиницю

 $ I ++;

} ?>

В третій вираз конструкції for можна записувати через кому відразу кілька найпростіших команд. Наприклад, якщо ми хочемо просто вивести всі цифри, то програму можна записати зовсім просто:

<?php // Якщо блок_выполнения не містить команд

// або містить тільки одну команду,

// фігурні дужки, в котрі він укладений,

// можна опускати

for ($i=0; $i<10; print $i, $i++)

?>

Оператор foreach – призначений для організації циклічних процесів з масивами. Синтаксис: foreach ($array as $value) оператор;

або foreach ($array as $key => $value) оператор;

  • У першому випадку формується цикл по всім елементам масиву, заданого змінної $array. На кожному кроці циклу значення поточного елемента масиву записується в змінну $value, і внутрішній лічильник масиву пересувається на одиницю (так що на наступному кроці буде видно наступний елемент масиву). Всередині "оператора" значення поточного елемента масиву може бути отримано за допомогою змінної $value. Виконання «оператора» відбувається стільки разів, скільки елементів в масиві $array.

  • Друга форма запису на додаток до перерахованого вище на кожному кроці циклу записує ключ поточного елемента масиву в змінну $key, яку теж можна використовувати в блоці_виконання. Коли foreach починає виконання, внутрішній покажчик масиву автоматично встановлюється на перший елемент:

<?php $names = array("Іван","Петро","Семен");

foreach ($names as $val)

{ // виведе всім вітання

echo "Привіт, $val<br>";

} foreach ($names as $k => $val)

{ // крім привітання,

// виведемо номери у списку, тобто ключі

echo "Привіт, $val!

Ти у списку під номером $k<br>";

} ?>

Оператор while – призначений для організації циклічних обчислювальних процесів, як правило з невідомим числом повторень. Синтаксис: while (вираз) оператор

Порядок виконання оператора:

  1. Обчислюється значення виразу.

  2. Якщо значенням вирази є true, то виконується оператор і відбувається перехід до пункту 1.

  3. Якщо значенням вирази є false, то відбувається перехід до виконання наступного оператора програми.

Приклад:

<? Php

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]