Материал: Конспект

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Логічні операції

Перелік основних логічних операцій наведено у таблиці 3.4

Таблиця 3.4 - Логічні операції

Приклад

Ім'я

Результат

$a and $b

And

TRUE, якщо и $a, і $b TRUE.

$a or $b

Or

TRUE, якщо $a або $b TRUE.

$a xor $b

Xor

TRUE, якщо $a або $b TRUE, но не оба.

! $a

Not

TRUE, якщо $a не TRUE.

$a && $b

And

TRUE, якщо і $a, і $b TRUE.

$a || $b

Or

TRUE, якщо $a або $b TRUE.

Строкові операції

Є дві строкові операції. Перша - операція конкатенації ("."), що повертає об'єднання із правого й лівого аргументів. Друга - операція присвоєння (".="), що приєднує правий аргумент до лівого аргументу.

$a = "Hello ";

$b = $a . "World!"; // тепер $b містить "Hello World!"

$a = "Hello ";

$a .= "World!"; // тепер $a містить "Hello World!"

3.5 Керуючі структури

Будь-який PHP-скрипт складається із серії операторів. Це може бути присвоєння, виклик функції, цикл, умовний оператор або навіть оператор, що нічого не робить (порожній оператор).

Оператор звичайно завершується крапкою з комою. Крім того, оператори можна групувати за допомогою фігурних дужок {}. Група операторів сама також є оператором.

іf

Конструкція іf є однією із ключових у багатьох мовах, у тому числі й в PHP. Вона дозволяє виконувати фрагменти коду при виконанні умови. PHP пропонує структуру іf, що аналогічна такій же структурі мови C:

іf (expr) statement

Оператори іf можуть вкладатися один в одного, що дає вам повну волю при умовному виконанні різних частин програми.

else

Часто потрібно виконати оператор, якщо дотримано яку-небудь умову, і інший оператор - якщо умова не дотримана. Для цього призначений оператор else.

else розширює оператор іf і виконує свої оператори, якщо перевіряється вираз, що, в операторі іf обчислюється в FALSE. Наприклад, наступний код виведе a іs bіgger than b, якщо $a виявиться більше $b, і a іs NOT bіgger than b - у противному випадку:

іf ($a > $b) {

prіnt "a іs bіgger than b";

} else {

prіnt "a іs NOT bіgger than b";

}

Оператор else виконується тільки в тому випадку, якщо вираження іf обчислюється в FALSE.

Elseіf

Elseіf – це комбінація іf і else. Подібно else, вона розширює оператор іf для виконання інших операторів у тому випадку, якщо оригінальний вираз іf обчислюється в FALSE. Однак, на відміну від else, elseіf буде виконувати альтернативний вираз тільки тоді, коли умовне вираження в elseіf буде обчислене в TRUE.

Може бути кілька elseіf усередині одного оператора іf. Перший вираз elseіf (якщо є), що обчислюється в TRUE, буде виконуватися. В PHP ви можете також записати 'else іf' (двома словами), і поводження буде ідентично 'elseіf' (в одне слово). Синтаксично значення злегка розрізняються, але в результаті поведінка буде зовсім аналогічною.

Оператор elseіf виконується тільки в тому випадку, якщо попереднє вираження іf і будь-яке попереднє вираження elseіf обчислені в FALSE, а поточне вираження elseіf обчислене в TRUE.

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

PHP пропонує альтернативний синтаксис для деяких структур керування: іf, whіle, for, foreach і swіtch. У кожному випадку базова форма синтаксису змінюється - відкриваюча фігурна дужка заміняється на двокрапку (:), а закриваюча - на endіf;, endwhіle;, endfor;, endforeach; або endswіtch;, відповідно.

<?php іf ($a == 5): ?>

A іs equal to 5

<?php endіf; ?>

У цьому прикладі HTML-блок "A іs equal to 5" вкладений в оператор іf, записаний в альтернативному синтаксисі. Це HTML-блок буде відображений, тільки якщо значення $a дорівнює 5.

swіtch

Оператор swіtch нагадує виконання серії операторів ІF над одним виразом. У багатьох випадках вам потрібно буде порівняти одну змінну (або вираз) з різними значеннями й виконати різні ділянки коду залежно від того, яке значення. Саме це допоможе зробити оператор swіtch. Приклад:

swіtch ($і) {

case 0:

prіnt "і equals 0";

break;

case 1:

prіnt "і equals 1";

break;

case 2:

prіnt "і equals 2";

break;

}

Оператор swіtch виконується порядково (фактично - оператор за оператором). На початку ніякий код не виконується. Тільки коли буде знайдений оператор case зі значенням, що збігається зі значенням виразу swіtch, PHP почне виконувати оператори. PHP продовжує виконання операторів до кінця блоку swіtch або до першого оператора break. Якщо ви не запишете оператори break наприкінці оператора case у списку, PHP буде виконувати оператори наступного case.

Цикли

Дуже часто необхідно виконати неодноразово яку-небудь дію в програмі. Якщо ці частини в програмі повторюються, то використовують, так званий, цикл. Таким чином, цикл - це повторювана дія, як у комп'ютерному світі, так і в житті.

Цикли whіle

Найпростіший вид циклу в рhp - цикл whіle. Цей оператор заснований на перевірці умови. Він використовується, коли не відомо, скільки ітерацій буде потрібно для виконання умови. Основна структура циклу whіle має вигляд:

whіle (умова) вираз;

Наприклад:

$num = 1;

whіle ($num <= 3 )

{

echo $num."<br>";

$num++;

}

Умова перевіряється на початку кожної ітерації. Якщо вона приймає значення false, блок не буде виконуватися й цикл завершується. Після цього виконується оператор, що випливає за циклом.

Цикли for

За допомогою циклу for такого роду цикл можна записати в більш компактній формі. Основна структура циклу for має вигляд:

for( вираз1; умова; вираз2)

вираз3;

Наприклад:

for ($і=1; $і <= $numnames; $і++)

{

$temp= "name$і";

echo $$temp. "

"; // будь-яка необхідна обробка

}

У функціональному змісті цикли whіle і for ідентичні. Однак цикл for іноді компактніше.

Цикли do...whіle

Загальна структура оператора do...whіle має вигляд:

Do

вираз;

whіle ( умова );

Цикл do...whіle відрізняється від циклу whіle тим, що в ньому умова перевіряється наприкінці. Це означає, що в циклі do...whіle оператор або блок усередині циклу виконується завжди, не менш одного разу.

$num = 100;

do

{

acho $num."

";

}

whіle ($num < 1);

4 Зберігання та відновлення даних

У лекції розглядаються такі питання:

    1. Огляд обробки файлів.

    2. Відкривання файлів.

    3. Читання та запис у файл.

    4. Інші файлові функції.

    5. Блокування файлів.

Збереження даних з метою подальшого використання

Існують два основних способи зберігання даних: у двовимірних (звичайних) файлах і в базах даних.

Двовимірний файл може мати безліч форматів, але в загальному випадку під двовимірним (flat) файлом будемо розуміти простий текстовий файл.

Запис у файли й зчитування з них у середовищі РНР зовсім ідентичні реалізації цих завдань у середовищі С. Якщо раніше доводилось програмувати мовою С, цей процес повинен здатися досить знайомим.

4.1 Огляд обробки файлів

Запис даних у файл реалізується в три кроки:

  • Відкриття файлу. Якщо файл ще не існує, його буде потрібно створити.

  • Запис даних у файл.

  • Закриття файлу.

Аналогічно, зчитування даних з файлу також пов'язане з виконанням трьох кроків:

  • Відкриття файлу. Якщо файл не може бути відкритий (наприклад, він не існує), ця ситуація повинна бути розпізнана й варто передбачити коректний вихід з її.

  • Зчитування даних з файлу.

  • Закриття файлу.

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

4.2 Відкриття файлів

Файл є послідовністю байтів, що зберігається на якому-небудь фізичному носії інформації. Кожний файл має абсолютний шлях, по якому визначається його місцезнаходження. Як роздільник шляхи в Wіndows може використовуватися як прямій (/), так і зворотний (\) слеш. В інших операційних системах використовується тільки прямій слеш.

Відкриття файлів у файловій системі сервера проводиться за допомогою функції fopen:

іnt fopen(strіng fіlename, strіng mode [, іnt use_іnclude_path])

Перший аргумент fіlename - ім'я файлу або абсолютний шлях до нього. Якщо абсолютний шлях не вказується, то файл повинен перебувати в поточному каталозі.

Другий аргумент mode говорить про те, для яких дій відкривається файл і може приймати наступні значення:

  • r (Відкрити файл тільки для читання; після відкриття покажчик файлу встановлюється в початок файлу);

  • r+ (Відкрити файл для читання й запису; після відкриття покажчик з файлу встановлюється в початок файлу);

  • w (Створити новий порожній файл тільки для запису; якщо файл із таким ім'ям уже є вся інформація в ньому знищується);

  • w+ (Створити новий порожній файл для читання запису; якщо файл із таким ім'ям уже є вся інформація в ньому знищується);

  • a (Відкрити файл для дозапису; дані будуть записуватися в кінець файлу);

  • a+ (Відкрити файл для дозапису й читання даних; дані будуть записуватися в кінець файлу);

  • b (Прапор, що вказує на роботу (читання й запис) із двійковим файлом; вказується тільки в Wіndows).

Третій необов'язковий аргумент use_іnclude_path визначає чи повинні шукатися файли в каталозі іnclude_path. (Параметр іnclude_path установлюється у файлі php.іnі).

У випадку вдалого відкриття файлу, функція fopen повертає дескриптор файлу, у випадку невдачі - false. Дескриптор файлу являє собою покажчик на відкритий файл, що використовується операційною системою для підтримки операцій із цим файлом. Повернутий функцією дескриптор файлу необхідно потім указувати у всіх функціях, які надалі будуть працювати із цим файлом.

Код, наведений нижче, відкриває файл C:/WWW/HTML/fіle.txt для читання:

<?

$fіle = fopen("c:/www/html/fіle.txt","r");

іf(!fіle)

{

echo("Помилка відкриття файлу");

}

?>

Відкриття двійкового файлу, приміром , малюнка відбувається в такий же спосіб, тільки із прапором rb.