Lecture4_MP.ppt
- Количество слайдов: 29
Мови програмування Лекція 4
Основні конструкції РНР Синтаксис РНР є надзвичайно лаконічним. Його конструкції схожі на конструкції мови С.
Оператор умови (if-else) Синтаксис конструкції if-else: if (логічний вираз) оператор1; else оператор2; Скорочена форма: if (логічний вираз) оператор1; Група операторів: if (логічний вираз) { оператор1; оператор n; } else { оператор1; оператор n; }
Оператор умови (if-else) Якщо використовується група операторів ставити крапку з комою після фігурних дужок не обов’язково. Якщо ж використовується тільки один оператор, тоді крапка з комою після нього (перед else) обов’язкова. If ($a>5) echo “a>5”; else echo “a<=5”;
Цикли Цикл дозволяє повторити визначену кількість раз деякі оператори. Такі оператори називаються тілом циклу. Прохід циклу називається ітерацією. РНР підтримує три види циклів: Цикл з передумовою (while) Цикл з постумовою (do-while) Цикл з лічильником (for)
Цикл з передумовою Принцип роботи циклу з передумовою: Обраховується значення логічного виразу. Якщо значення істинне, то виконується тіло циклу, в іншому випадку – виконується перехід до оператора, що стоїть після циклу. Синтаксис такого циклу: while (логічний вираз) інструкція; У даному випадку тілом циклу є інструкція.
Цикл з постумовою Такий цикл відрізняється від попереднього тим, що у ньому виконується спочатку тіло циклу, а тільки потім перевіряється умова. Таким чином, тіло циклу, хоча б раз, але буде виконане. Синтаксис циклу: do { // тіло циклу } while (умова);
Цикл з лічильником For Використовується для виконання тіла циклу певну кількість раз. Такий цикл зручно використовувати для заповнення масиву. Синтаксис циклу: For (команди ініціалізації; умова; команди після ітерації) (тіло циклу); Оператор for розпочинає роботу з виконання команд ініціалізації. Дані команди виконуються всього лише один раз. Після цього відбувається перевірка умови: якщо вона істинна, то виконується тіло циклу. Після того, як буде виконано останній оператор тіла, виконаються команди “після ітерації”. Потім знову перевіряється умова і у випадку, якщо вона істинна, виконується тіло циклу та постітераційні команди.
Альтарнативний синтаксис Цикли while та for мають альтернативний синтаксис. While (логічний вираз) Тіло цикла endwhile; for (команда ініціалізації; умова; команди_після_ітерації): тіло цикла endfor;
Альтарнативний синтаксис if (логічний вираз): команди; elseif (логічний вираз 2): команди; else: команди; endif; Такий синтаксис зручно використовувати при включенні до РНР сценаріїв HTML-коду, без використання оператора echo.
Вкладені цикли Кожен цикл може містити у своєму тілі декілька циклів, кожен з яких називається вкладеним. Кількість таких циклів необмежена, до того ж, всі вони можуть бути різного типу.
Оператори break При використанні циклів можна застосовувати оператори break та continue. Перший перериває роботу всього циклу, а інший – тільки поточної операції. Операція break може задаватися з одним необов’язковим параметром – числом, яке вказує, з якого вкладеного циклу потрібно вийти. За замовчуванням використовується 1, тобто , вихід з поточного циклу, хоча, інколи, використовуються й інші значення. Операцію break зручно використовувати для циклів пошуку: як тільки чергова ітерація задовольняє умові пошуку, він обривається.
Оператори break Інструкція continue так як і break, працює тільки у парі з циклічними конструкціями. Вона негайно завершує поточну ітерацію циклу та переходить до нової. В основному continue дозволяє зекономити кількість фігурних дужок у коді та збільшити зручність його прочитання. Це буває потрібно у циклах-фільтрах, коли потрібно перебрати деяку кількість об’єктів та вибрати тільки ті, що задовольняють вказаній умові.
Цикл перебору масивів foreach Даний цикл став доступним з четвертої версії РНР. Він спеціально призначений для перебору масивів. Синтаксис циклу foreach: Foreach (масив as $ключ=>$значення) оператори; Оператори, що містяться у тілі циклу будуть виконуватися для кожного елементу масиву. Змінна $ключ буде містити ім’я ключа елемента, а змінна $значення – значення елемента.
Інструкція switch-case (конструкція вибору) Дана конструкція призначена для вибору дій, залежно від значення вказаного виразу. Конструкція switсh-case частково нагадує оператор if-else. Конструкцію вибору потрібно використовувати, якщо пропонованих варіантів більше, скажімо, 5 і для кожного варіанта потрібно виконати специфічні дії. Синтаксис switch-case: Switch (вираз) { Case (значення 1: команди_1; [break; ] … Case (значення 1: команди_1; [break; ] [default: команди_за_замовчуванням; [break; ]
Інструкція switch-case (конструкція вибору) Конструкція працює наступним чином: 1. Обраховується значення виразу. 2. Переглядається набір значень. Нехай значення_і дорівнює значенню виразу, отриманого на першому кроці. Якщо не вказано оператор break, то будуть виконуватися команди і, і+1, і+2, . . . , N. У іншому випадку буде виконана тільки команда з номером і. 3. Якщо жодне зі значень набору не співпало з значенням виразу, то виконується блок default.
Інструкції require Дані інструкції дозволяють розбити велику програму на декілька окремих файлів. Інструкція require дозволяє включити код до виконання сценарію. Синтаксис: require ім’я_файла; Інтерпретатор аналізує сценарій і , знаходячи require, просто заміняє вміст цієї інструкції вмістом вказаного файлу. Це може бути HTML-файл чи сценарій на РНР. У останньому випадку вміст файла повинен бути визначений тегами, як і у випадку звичайного сценарію. Вставка вмісту файла здійснюється ДО виконання сценарію. Таку інструкцію зручно використовувати для включення заголовків HTML.
Інструкції include На відміну від require директива include дозволяє включити код до сценарію під час його виконання. Використання цієї директиви виглядає наступним чином: Include ім’я файла;
Обробка помилок Інтерпретатор РНР дозволяє програмісту визначити, які повідомлення про помилки потрібно виводити, а які – ні. Параметр error_reporting у файлі конфігурації РНР (рнр. ini) дозволяє визначити міру обробки та протоколювання помилок. Можливі значення: E_ALL – всі помилки та попередження E_ERROR – фатальні помилки під час виконання програми (наприклад, неможливо відкрити файл) E_WARNNG - попередження час виконання та нефатальні помилки E_PARSE – синтаксичні помилки E_NOTICE – коментарі під час виконання (наприклад, повідомлення про те, що змінна неініціалізована)
Форми в HTML-документах Форми призначені для відправки інформації CGI-додатку (сценарію). Форми в HTML-документах реалізуються тегомконтейнером FORM, у якому задаються всі управляючі елементи – поля вводу, кнопки і т. д. Якщо управляючі елементи вказані за межами тегу FORM, то вони не створюють форму, а використовуються для побудови інтерфейсу користувача на вебсторінці, тобто для привнесення у неї різних кнопок, прапорців, полів вводу. Обробка таких елементів здійснюється індивідуально у рамках самого HTML-документу за допомогою включених у нього скриптів. Хоча, вони можуть і не оброблятися. Наприклад, управляючий тег TEXTAREA часто використовується для створення вікна зі смугою прокрутки всередині документа для виведення великого тексту, що відіграє другорядку роль.
Елементи форм Імена елементам форм присвоюють через їх атрибут NAME. Кожен елемент форми має своє початкове значення, яке використовується по замовчуванню та кінцеве значення, що є символьними рядками. Початкові значення елементів не змінюються, завдяки чому може здійснюватися скидання значень, вказаних користувачем. Результатом такої дії буде установка для всіх управляючих елементів форми вихідних значень.
Елементи форм Виділяють наступні типи управляючих елементів: Кнопки – задаються за допомогою елементів BUTTON та INPUT. Розрізняють: 1) Кнопки відправки – при натисканні на них здійснюється відправка форми серверу; 2) Кнопки скидання – при їх натисканні переводять управляючі елементи у вихідний стан; 3) Інші кнопки – кнопки, для яких не вказано дію, що виконується при натисканні на них, за замовчуванням.
Елементи форм Перемикачі з залежною фіксацією – задаються елементом INPUT і являють собою перемикачі “вмк/вимк”. Якщо декілька залежних перемикачів мають однакові імена, то вони є взаємовиключаючими. Це означає, що, якщо один з перемикачів встановлюється у положення “ввімкнуто”, то всі інші автоматично – “вимкнуто”.
Елементи форм Незалежні перемикачі (перемикачі з незалежною фіксацією) – задаються елементом INPUT і являють собою перемикачі “ввімкнуто/вимкнуто”, але, на відміну, від залежних можуть набувати та змінювати своє значення незалежно від інших перемикачів.
Елементи форм Меню – реалізується за допомогою елементів SELECT, OPTGROUP і OPTION. Меню надають користувачу список можливих варіантів вибору. Введення тексту – реалізується елементами INPUT, якщо вводиться один рядок та елементами TEXTAREA – якщо декілька рядків.
Елементи форм Вибір файлів – дозволяє разом з формою відправляти обрані файли, реалізується HTML-елементом INPUT. Приховані управляючі елементи – створюються управляючі елементи INPUT. Очевидно, що тег INPUT є універсальним.
Тег FORM своїми атрибутами вказує адресу сценарію, якому буде надіслана форма, спосіб пересилки та характеристику даних, що містяться у формі. Початковий та кінцевий теги FORM задають границі форми, тому їх задавати обов’язково.
Тег FORM Action – єдиний обов’язковий атрибут. У якості його значень вказується URLадреса програми CGI, що буде обробляти дані, які містяться у формі. Якщо атрибут ACTION все-таки не вказано, то вміст форми буде відправлено на URL-адресу з якої завантажувалася дана веб-сторінка. Можна використовувати запис MAILTO: URL , завдяки якому форма буде надіслана електронною поштою.
Тег FORM Method – визначає метод HTTP, що використовується для пересилання даних форм від браузера до сервера. Атрибут METHOD може приймати два значення: get чи post. Enctype – необов’язковий атрибут, що вказує тип вмісту форми, який використовується для визначення формату кодування при її пересиланні. У HTML визначено два можливих значення для атрибуту ENCTYPE. APPLICATION/X WWW-FORM-URLENCODED (використовується за замовчуванням) MULTIPART/FORM DATA


