Короткі теоретичні відомості про PHP, Проектування інформаційних ресурсів Інтернет, ЗНТУ
« Назад4. Короткі теоретичні відомості про PHP4.1. Основні положенняPHP - це мова вбудованих в HTML-сторінки сценаріїв, що виконуються на сервері. Синтаксис запозичений з таких мов, як С, Perl, Java, і при цьому додана маса можливостей, яких цим мовам бракує. Основні переваги РНР:
Головним достоїнством РНР є здатність роботи з базами даних (MySQL, PostgreSQJL, InterBase, MS SQL і ін.). Для тестування PHP скриптів необхідно встановити веб-сервер і інтерпретатор PHP. Можна скористатися пакетом Denwer (http://denwer.ru), який уже містить всі необхідні компоненти й настройки. Усі подальші коментарі припускають, що на вашій локальній машині встановлений пакет Denwer у директорію С:\WebServers\. Файли з HTML кодом, які містять РНР код, повинні мати розширення .php. Тіло скипта обрамляється символами <?php і ?>. Скрипт може вбудовуватись в будь-яке місце HTML коду, більше того, РНР скрипти можуть чергуватися з HTML кодом. На відміну від сценаріїв, написаних на javascript, PHP скрипти виконуються не браузером, а сервером, тому кінцевий користувач відкриває в браузері вже остаточно згенерований сервером HTML код сторінки, у якому відсутні елементи PHP коду. Наприклад, для того, щоб переконатися в тому, що РНР сценарії обробляються, напишемо найпростіший код <html> echo "Привіт, я - скрипт PHP!"; Далі зберігаємо файл з ім'ям index.php у папці C:\WebServers\home\site1\www\. Потім запускаємо Denwer і в адресному рядку браузера набираємо http://site1, після чого у вікні браузера спостерігаємо текст Привіт, я - скрипт PHP! Неважко здогадатися, що оператор echo здійснює виведення інформації на екран. Аналогічно діє команда print. Якщо тепер подивитися HTML код сторінки, ми побачимо таке <html> Як бачимо, сервер обробив скрипт, згенерував HTML код сторінки й жодних слідів від РНР не залишилося. Більше того, у РНР скрипт можна впакувати всю сторінку
Результат буде таким самим. При написанні програм на РНР, наприкінці кожного виразу необхідно ставити крапку з комою. Коментарі обрамляються сиволами /* і */. Однорядкові коментарі пишуть після комбінації //. Далі розглянемо основні конструкції мови РНР. 4.2. Змінні в PHPІмена змінних починаються зі знака $, після якого повинна слідувати буква. Імена змінних чутливі до регістра букв: наприклад, $var - не те ж саме, що $Var або $VAR. Ім'я змінної може складатися з будь-яких символів ASCII, код яких більше 127. Однак кириличні символи використовувати все-таки не рекомендується. Важливою перевагою PHP є те, що в PHP не потрібно описувати змінні явно, та вказувати їхній тип. Інтерпретатор все це робить сам. Однак іноді він може помилятися (наприклад, якщо в текстовому рядку насправді задане десяткове число), тому зрідка виникає необхідність явно вказувати, який же тип має той або інший вираз. Для роботи зі змінними в PHP є спеціальні функції: isset() - перевіряє, чи була оголошена змінна й чи відрізняється її значення від NULL; empty() - аналог isset(); unset() - убудована функція мови, що видаляє значення змінної й видаляє саму змінну зі списку доступних змінних. 4.3. Типи даних (змінних) в PHPPHP підтримує 8 базових типів даних:
boolean. Логічний тип даних, змінні цього типу можуть набувати значення true (правда) або false (неправда). integer. Цілочисельний тип даних, змінні можуть набувати цілі значення (...-2, -1, 0, 1, 2...) у діапазоні від -2^31 до +2^31. Якщо значення перевищує цей поріг - воно автоматично переводиться в тип float. float. Числовий тип даних із плаваючою точкою, може містити як цілі, так і дробові величини. string. Строковий тип даних. Містить довільну кількість різних символів. PHP не накладає ніяких обмежень на довжину рядка.
array. Масив, містить упорядкований список елементів. object. Об'єкт, містить якийсь об'єкт (екземпляр класу).
resource. Посилання на абстрактний елемент, т.зв. зовнішній ресурс. Приклади зовнішніх ресурсів - посилання на файл і посилання на результат виконання запиту. NULL. Порожній тип даних, що позначає відсутність якого-небудь значення. Про такі значення звичайно говорять "не визначене". Порожнім значенням можна ініціалізувати змінні будь-якого іншого типу. Є функція gettype(), що повертає тип, який РНР призначив для змінної. Існує також функція settype(), що явно встановлює тип. Трохи докладніше розглянемо масиви, оскільки при взаємодії з базами даних доводиться оперувати з масивами. Існує два типи масивів, що відрізняються за способом ідентифікації елементів. У масивах першого типу елемент визначається індексом у послідовності. Такі масиви називаються простими масивами. Нумерація починається з нуля. Ініціалізація масиву здійснюється двома способами. а) Поелементно. $mass[0] = "Нуль"; $mass[1] = "Один"; $mass[2] = "Два"; $mass[3] = "Три"; Крім того, можна не вказувати індекс. PHP автоматично привласнить елементу індекс останнього елемента плюс один, тобто додасть елемент у кінець масиву. $mass[] = "Нуль"; $mass[] = "Один"; $mass[] = "Два"; $mass[] = "Три"; б) Можна вказати всі елементи масиву відразу. $mass = array ("Нуль", "Один", "Два", "Три"); Масиви другого типу мають асоціативну природу, і для звертання до елементів використовуються ключі, логічно пов’язані зі значеннями. Такі масиви називають асоціативними масивами. Основною відмінністю асоціативних масивів від списків є можливість звертання до елементу масиву не по числовому індексу, а по індексу у вигляді рядка. Індекси асоціативного масиву називаються ключами. $mass ["Один"] = 1; $mass ["Два"] = 2; $mass["Три"] = 3; echo $mass ["Один"]; //Виведе число 1 Для ініціалізації асоціативних масивів можна також використовувати інструкцію array(): $mass = array ("Один" => 1, "Два" =>, "Три" => 3); echo $mass["Один"]; //виведе число 1 Функції array_keys() і array_values() дозволяють одержати всі ключі і всі значення асоціативного масиву відповідно. Припускається використання багатовимірних масивів. Наприклад, кожному елементу одномірного масиву можна привласнити інший масив, у результаті одержимо двовимірний масив:
4.4. ОператориОператори дозволяють виконувати різні дії зі змінними, константами і виразами. Далі наведені основні групи операторів. Арифметичні операториТаблиця 4.1
Порозрядні оператори Ця група операторів працює з бітовими зображеннями значень цілочисельних операндів Таблиця 4.2
Логічні операториТаблиця 4.3
Оператори цієї групи, на відміну від порозрядних, працюють із логічними змінними (boolean) і використовуються для побудови логічних виразів. Оператори рівності Таблиця 4.4
Оператори порівняння Оператори порівняння (табл. 4.5), як і логічні оператори, дозволяють управляти логікою програми й приймати рішення при порівнянні двох і більше змінних. Таблиця 4.4
Зверніть увагу: оператори порівняння призначені для роботи тільки із числовими значеннями. Інкремент і декремент
Оператори присвоєнняДля присвоєння змінній нового значення використовується оператор " $a = $b + $c - 127;
Також існують скорочені оператори присвоєння ( $a = $a + 1; рівнозначно $a += 1; Логічний оператор if ...else Оператор if дозволяє формувати структури, що розгалужуються. Існує декілька форм оператора a)if (вираз) {блок операторів для виконання} б) if (вираз) {блок1} else {блок2} в) if (вираз1) {блок1} elseif (вираз2) {блок2} else {блок3} Робота оператора не вимагає пояснень, оскільки аналогічні конструкції присутні в багатьох мовах програмування. Приклад: <?php if($a>$b ) { print "a більше b"; $c=$b; } elseif($a==$b) { print "a дорівнює b"; $c=$a; } else { print "a менше b"; $c=$a; } ?> Оператор switchОператор switch (перемикач) зручний, коли потрібне значення змінної або виразу порівнювати з певними величинами й виконувати той або інший фрагмент коду залежно від результатів порівняння. Приклад: <?php $x=2; switch($x){ case 1: echo"x дорівнює 1"; break; case 2: echo"x дорівнює 2"; break; case 3: echo"x дорівнює 3"; break; } ?> Оператор циклу із передумовою Синтаксис оператора While ( логічний вираз ){тіло циклу} Цикл продовжує виконуватися, поки логічний вираз залишається правдивим. Якщо логічний вираз з самого початку має значеня false, тіло циклу жодного разу не виконається. Приклад: <?
//ця програма надрукує всі парні цифри
$i = 1;
while ($i < 10) {
if ($i % 2 == 0) print $i;
// друкуємо цифру, якщо вона парна
$i++;
// і збільшуємо $i на одиницю
}
?>
Оператор циклу з післяумовою На відміну від циклу while, цей цикл перевіряє значення виразу не до, а після кожного проходу. Таким чином, тіло циклу виконується хоча б один раз. Виглядає оператор так: do { тіло циклу; } while(логічний вираз); Універсальний цикл forЦей цикл дозволяє вказати явно закон зміни параметрів циклу. Формат конструкції такий: For(ініціалізуючі_команди;умова_виходу із циклу; команди_після_проходу){тіло_циклу;} Приклад: <?php
// друкуємо парні числа від 0 до 8
for ($i=0; $i<10; $i++)
{ if ($i % 2 == 0) print $i;}
?>
Якщо тіло циклу не містить команд або містить тільки одну команду, фігурні дужки можна не писати. 4.5. Функції РНРФункції використовуються для неодноразового виконання однієї й тієї ж послідовності дій, але над різними вихідними даними й у різних місцях скрипта. Функції бувають користувальницькими й системними. Користувальницькі функції (як свідчить назва) програміст пише самостійно. Системні функції завжди доступні з будь-якого місця скрипта й оголошувати їх не треба. У старих версіях PHP функція повинна була бути оголошена до першого використання, але в PHP версії 4.3 і вище порядок оголошення й використання функції може бути довільним. Синтаксис користувальницької функції function Ім'я_функції (параметр1, параметр2, ... параметр)
{ Тіло функції
return "значення, що повертає_ функція";
}
Для передачі результату роботи користувальницьких функцій в основну програму (скрипт) використовується конструкція return. Якщо функція нічого не повертає, конструкцію return не вказують. Конструкція return може повертати все, що завгодно, у тому числі й масиви. Наведемо приклади використання користувальницьких функцій: <?php function funct() { $number = 123; return $number; } $a = funct(); echo $a; ?> У розглянутому прикладі функція funct повертає за допомогою конструкції return число 123. Перелік системних функцій можна знайти в спеціальних довідниках. Для наших завдань буде потрібно лише декілька функцій у контексті взаємодії з MySql, які будуть розглянуті в наступному розділі. З повагою ІЦ "KURSOVIKS"! |