Деякі переваги РНР. До конкурентів РНР відносяться Perl, Active Server Pages (ASP) від Microsoft, Java Server Pages (JSP) і Allaire Cold Fusion.

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

• Висока продуктивність

• Наявність інтерфейсів до багатьом різним системам баз даних

• Вбудовані бібліотеки для виконання багатьох загальних завдань, пов'язаних з Web

• Низька вартість

• Простота вивчення і використання

• Перемістимість

• Доступність вихідної коду

Продуктивність.РНР виключно ефективний. Використовуючи єдиний нешляхуй сервер, можна обслуговувати мільйони звернень в день. Результати тестування, опубліковані компанією Zend Technologies (http://www.zend.com), підтверджують вищу продуктивність РНР в порівнянні з конкуруючими продуктами.

Інтеграція з базами даних.РНР володіє вбудованою зв'язністю з багатьма системами баз даних. На додаток до MYSQL, в числі інших можна безпосередньо підключатися до баз даних POSTGRESQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase і Sybase.

Використовуючи Open Database Connectivity Standard (Стандарт відкритого інтерфейсу зв'язку з базами даних, ODBC), можна підключатися до будь-якої бази даних, для яких існує ODBC-драйвер. Це поширюється на продукти Microsoft і багатьох інших компаній.

Вбудовані бібліотеки.Оскільки РНР був розроблений для використання в Web, він має безліч строєних функцій для виконання широкої різноманітності корисних, пов'язаних з Web, завдань. З його допомогою можна "на льоту" генерувати GIF-изображения, підключатися до інших мережевих служб, відправляти повідомлення електронної пошти, рабо­тать з cookie-наборум і генерувати PDF-документы за допомогою декількох рядків коду.

Вартість.Пакет РНР є безкоштовним. Найбільш нову версію можна у будь-який момент абсолютно безкоштовно вивантажити з http://www.php.net.

Вивчення РНР.Синтаксис РНР грунтується на інших мовах програмування, в першу чергу на З і Perl, Якщо ви вже знайомі із З, Perl або з-подібною мовою, таким як C++ або Java, то майже відразу зможете ефективно використовувати РНР.

Переносимість.Пакет РНР можна використовувати під управлінням багатьох різних операційних систем. Код РНР можна створювати в середовищі таких безкоштовних Unix-подобных операційних систем, як Linux і FREEBSD, комерційних версій Unix типа Solaris і IRIX або різних версій Microsoft Windows. Як правило, програми працюватимуть без яких-небудь змін в різних середовищах зі встановленим РНР.

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

Синтаксис і граматика. Синтаксис PHP запозичений безпосередньо з C. Java і Perl також вплинули на синтаксис даної мови.

Перехід з HTML. Є три способи виходу з HTML і переходу в "режим PHP коду":

1. <? echo("простий спосіб, інструкція обробки SGML\n"); ?>

2. <?php echo("при роботі з XML документами робіть так\n"); ?>

3. <script language="php">

echo ("деякі редактори (подібні FrontPage) не люблять оброблювальні інструкції");

</script>;

4. <% echo("Від PHP 3.0.4 можна факультативно застосовувати ASP-тэги"); %>

Розділення інструкцій. Інструкції (твердження) розділяються також як в C або Perl - крапкою з комою. Закриваючий тег (?>) теж має на увазі кінець твердження, тому наступні записи еквівалентні:

<php

echo "Це тест";

?>

<php echo "Це тест" ?>

Типи змінних.PHP підтримує змінні наступних типів:

· integer - ціле

· double - число з дробовою частиною

· string - строкова змінна

· array - масив

· object - об'єктна змінна

· pdfdoc - PDF-документ (лише за наявності підтримки PDF)

· pdfinfo - PDF-инфо (лише за наявності підтримки PDF)

Тип змінної зазвичай не встановлюється програмістом; замість цього, він визначається PHP під час виконання програми, залежно від контексту, в якому вона використовується. Якщо вам подобається вказувати типа змінної безпосередньо, використовуйте для цього інструкцію cast або функцію settype(), але врахуйте, що змінна може поводитися по-різному, залежно від того, який тип визначений для неї зараз.

Ініціалізація змінної.Для ініціалізації змінної в PHP ви просто привласнюєте їй значення. Для більшості змінних це саме так; для масивів і об'єктних змінних, проте, може використовуватися декілька інший механізм.

Ініціалізація масивів. Масив може ініціалізуватися одним з двох способів: послідовним привласненням значень, або за допомогою конструкції array().

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

$names[] = "Jill"; // $names[0] = "Jill"

$names[] = "Jack"; // $names[1] = "Jack"

Як в C і Perl, елементи масиву нумеруються, починаючи з 0, а не з 1.

Ініціалізація об'єктів. Для ініціалізації об'єктної змінної використовуйте нове розпорядження для зіставлення даного об'єкту об'єктною змінною.

class foo {

function do_foo () { echo "Doing foo."; }

}

$bar = new foo;

$bar -> do_foo ();

Область змінної.Областю змінної є контекст, усередині якого вона визначена. Зазвичай всі змінні PHP мають одну область. Проте, усередині функцій визначених користувачем, представлена локальна область функції. Будь-яка змінна, визначена усередині функції, за замовчуванням обмежена локальною областю функції. Наприклад:

$а = 1; /* глобальна область */

Function Test () {

echo $a; /* посилання на змінну локальної області */

}

Test ();

Цей скрипт не видасть що-небудь на виході, оскільки інструкція echo відноситься до локальної версії змінної $a, значення якої привласнюється не усередині цієї області. Ви можете відмітити, що тут є деяка відмінність від мови C, в тому, що глобальні змінні в C автоматично діють і усередині функцій, якщо лише вони не переписуються локальними визначеннями. Це може викликати деякі проблеми, оскільки по необережності можна змінити глобальну змінну. У PHP глобальні змінні мають бути продекларовані глобально усередині функції, якщо передбачається їх використання в даній функції. Наприклад:

$а = 1;

$b = 2;

Function Sum () {

global $a, $b;

$b = $a + $b;

}

Sum ();

echo $b;

Цей скрипт видасть значення "3". Оскільки $a і $b декларуються глобально усередині функції, посилання на дані змінні трактуючи як посилання на їх глобальні версії.

Другим способом доступу до змінних з глобальної області є використання спеціального визначуваного масиву PHP $GLOBALS. При цьому попередній приклад може бути записаний як:

$а = 1; $b = 2;

Function Sum () { $GLOBALS["b"] = $GLOBALS["а"] + $GLOBALS["b"]; }

Sum ();

echo $b;

Масив $GLOBALS є асоціативним, в якому ім'я глобальної змінної є ключем, а значення цієї змінної є значенням елементу масиву.

Іншою важливою характеристикою від області визначення змінної є статична змінна. Статична змінна існує лише в локальної області функції, але вона не втрачає свого значення, коли програма, при виконання, покидає цю область. Розглянемо наступний приклад:

Function Test () {

$а = 0;

echo $a;

$a++;

}

Ця функція абсолютно даремна практично, оскільки кожного разу при її виклику вона встановлює $a у 0 і виводить "0". Вираз $a++ так само марно, оскільки при виході з функції змінна $a зникає. Для додання дієздатності функції підрахунку змінна $a декларується як статична:

Function Test () {

static $a = 0;

echo $a;

$a++;

}

Тепер при виклику функції Test() вона виводитиме значення $a і збільшувати його.

Статичні змінні також вельми істотні, коли функції викликаються рекурсивно. Рекурсивні функції - це ті, які викликають самі себе. Складати рекурсивну функцію потрібно уважно, оскільки при неправильному написанні можна зробити рекурсію невизначеною. Ви маєте бути упевнені в адекватності способу припинення рекурсії. Наступна проста функція рекурсивно вважає до 10:

Function Test () {

static $count = 0;

$count++;

echo $count;

if ($count < 10) {

Test ();

}

$count--;

}

Змінні змінні.Інколи буває зручно давати змінним змінні імена. Такі імена можуть змінюватися динамічно. Звичайна змінна встановлюється так:

$а = "hello";

Змінна змінна бере деяке значення і обробляє його як ім'я змінної. У наведеному вище прикладі значення hello може бути використане як ім'я змінної, за допомогою вживання два записаних підряд знаків долара, т.е.:

$$а = "world";

З цієї точки зору, дві змінних визначені і збережені в символьному дереві PHP: $a з вмістом "hello" і $hello з вмістом "world". Так, інструкція:

echo "$a ${$a}";

здійснює те ж саме, що і інструкція:

echo "$a $hello";

а саме, обоє вони виводять: hello world.

Аби використовувати змінні змінні з масивами, вирішите проблему неоднозначності. Це означає, що якщо ви пишете $$a[1], то синтаксичному аналізатору необхідно знати, чи маєте ви у вигляді використовувати $a[1] як змінну, або ви передбачаєте $$a як змінну, а як індекс цієї змінної. Синтаксис для дозволу неоднозначності такий: ${$a[1]} для першого випадку і ${$a}[1] для другого.

Змінні зовні PHP. HTML Форми (GET і POST)

Коли програмою-обробником форми є PHP-скрипт, змінні цієї форми автоматично доступні для даного скрипта PHP. Наприклад, розглянемо наступну форму:

<form action="foo.php" method="post">

Name: <input type="text" name="name"><br>

<input type="submit">

</form>

При активізації форми PHP створить змінну $name, значенням якої буде той вміст, який було введено в поле Name: даної форми.

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

<form action="array.php" method="post">

Name: <input type="text" name="personal[name]"><br>

Email: <input type="text" name="personal[email]"><br>

Beer: <br>

<select multiple name="beer[]">

<option value="warthog">Warthog

<option value="guinness">Guinness

</select>

<input type="submit">

</form>

Якщо PHP-атрибут track_vars включений, через установку конфігурації track_vars або директивою <?php_track_vars?>, тоді змінні, активізовані за допомогою методів POST або GET, також знаходитимуться в глобальних асоціативних масивах $HTTP_POST_VARS і $HTTP_GET_VARS відповідно.

Імена змінних МАЛЮНКА АКТИВІЗАЦІЇ. При активізації (запуску) форми можна використовувати малюнок (зображення) замість стандартної кнопки запуску:

<input type=image src="image.gif" name="sub">

Коли користувач натискує кнопку миші де-небудь над таким малюнком, супроводжуюча форма передається на сервер з двома додатковими змінними, sub_x і sub_y. Вони містять координати місця натиснення кнопки миші користувачем усередині даного малюнка. Можна відзначити, що практично, реальні імена змінних, передавані браузером, містять крапку замість символу підкреслення, але PHP конвертує крапку в елемент підкреслення (underscore) автоматично.








Дата добавления: 2016-04-02; просмотров: 762;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.023 сек.