1. Короткий огляд можливостей РНР. Вбудовування РНР в HTML
  2. Основний синтаксис РНР
  3. Змінні в РНР
  4. Константи в РНР
  5. Оператори в РНР
  6. Типи даних в РНР

6.1. Короткий огляд специфіки і можливостей РНР. Вбудовування РНР в HTML. <вверх>

Сьогодні PHP використовується сотнями тисяч розроблювачів. Кілька мільйонів сайтів написані на PHP, що складає більш 20% доменів Internet.

«PHP може все», – заявляють його розробники. У першу чергу PHP використовується для створення скриптів, що працюють на стороні сервера, для цього його, власне, і придумали. PHP здатний розв’язувати ті ж задачі, що і будь-які інші CGI-скрипти, у тому числі обробляти дані html-форм, динамічно генерувати html сторінки і т.п. Але є й інші області, де може використовуватися PHP. Всього виділяють три основні області застосування PHP.

В принципі це не найкращий спосіб використовувати PHP, особливо для початківців, але якщо ви вже досконально вивчили PHP, то такі можливості мови можуть виявитися досить корисними. Для застосування PHP у цій області буде потрібно спеціальний інструмент – PHP-GTK, що є розширенням PHP.

У PHP поєднуються дві найпопулярніші парадигми програмування – об'єктна і процедурна. У PHP4 більш повно підтримується процедурне програмування, але існує можливість писати програми й в об'єктному стилі. Вже в перших пробних версіях PHP5 більшість недоліків у реалізації объектно-орієнтованої моделі мови, що існують у PHP4, усунуті.

Якщо говорити про можливості сьогоднішнього PHP, то вони виходять далеко за рамки тих, що були реалізовані в його перших версіях. За допомогою PHP можна створювати зображення, PDF-файли, флеш-ролики, у нього включена підтримка великої кількості сучасних баз даних, вбудовані функції для роботи з текстовими даними будь-яких форматів, включаючи XML, і функції для роботи з файловою системою. PHP підтримує взаємодію з різними сервісами за допомогою відповідних протоколів, таких як протокол керування доступом до директорій LDAP, протокол роботи з мережним устаткуванням SNMP, протоколи передачі повідомлень IMAP, NNTP і POP3, протокол передачі гіпертексту HTTP і т.д.

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

Для роботи з текстовою інформацією PHP успадкував (з невеликими змінами) механізми роботи з регулярними виразами з мови Perl і UNIX-систем. Для обробки XML-документів можна використовувати як стандарти DOM і SAX, так і API для XSLT-трансформацій.

Для створення додатків електронної комерції існує ряд корисних функцій, таких як функції здійснення платежів Cybercash, CyberMUT, VeriSign Payflow Pro і CCVS.

Зараз більш докладно розповімо про те, що являє собою PHP-програма і чим вона відрізняється від програм на мовах C, Perl і JavaScript. Розглянемо приклад

<html>
  <head>
     <title>Приклад</title>
  </head>
  <body>
    <?php 
     echo "<p>Привіт, я – скрипт PHP!</p>"; 
    ?>
  </body>
</html> 

Приклад. Простий html-файл з вбудованим кодом на РНР

Це простий HTML-файл, у який вбудований за допомогою спеціальних тегів код, написаний мовою PHP.

Як ми вже відзначали вище, PHP схожа на C і Perl. Однак наведена тут програма сильно відрізняється від аналогічних за змістом програм на мовах C і Perl. Тут не потрібно писати велику кількість спеціальних команд для виведення HTML. Пишеться безпосередньо HTML-скрипт, у який можна вбудовувати PHP-код, що здійснює які-небудь дії (наприклад, що виводить текст на екран, як у нашому прикладі). Недоліком PHP у порівнянні із C і Perl, незважаючи на всі зусилля розроблювачів, усе ще є недостатня швидкість виконання складних скриптів.

PHP-скрипти – це програми, що виконуються й обробляються сервером. Так що порівнювати його зі скриптовими мовами типу JavaScript неможна, тому що написані на них скрипти виконуються на машині клієнта. У чому відмінність скриптів, виконуваних на сервері і на клієнті? Якщо скрипт обробляється сервером, клієнтові посилаються тільки результати роботи скрипта. Наприклад, якщо на сервері виконувався скрипт, подібний наведеному вище, клієнт одержить згенеровану HTML-сторінку вигляду:

<html>
    <head>
      <title>Приклад</title>
    </head>
    <body>
      <p>Привіт, я – скрипт PHP!</p> 
    </body>
</html> 

У цьому випадку клієнт не знає, який код виконується. Можна навіть сконфігурувати свій сервер таким чином, щоб HTML-файли оброблялися процесором PHP, так що клієнти навіть не зможуть довідатися, чи одержують вони звичайний HTML-файл або результат виконання скрипта. Якщо ж скрипт обробляється клієнтом (наприклад, це програма мовою JavaScript), то клієнт одержує сторінку, що містить код скрипта.

Як видно з наведеного прикладу PHP-скрипти вбудовуються в HTML-код. Виникає питання, яким чином? Є кілька способів. Один з них наведений у найпершому прикладі – за допомогою відкриваючого тега <?php і закриваючого тега ?>. Такого вигляду спеціальні теги дозволяють переключатися між режимами HTML і PHP. Цей синтаксис найбільш кращий, оскільки дозволяє задіяти PHP у XML-сумісних програмах (наприклад, написаних мовою XHTML), але проте можна використовувати наступні альтернативні варіанти (команда echo "Some text"; виводить на екран текст «Some text».):

Перший з цих способів не завжди доступний. Щоб ним користуватися, потрібно включити короткі теги або за допомогою функції short_tags() для PHP 3, або включивши налаштування short_open_tag у конфігураційному файлі PHP, або скомпілювавши PHP з параметром --enable-short-tags. Навіть якщо це включено за замовчуванням у php.ini-dist, використання коротких тегів не рекомендується.

Другий спосіб аналогічний налаштуванню, наприклад, JavaScript-коду і використовує для цього відповідний html тег. Тому використовувати його можна завжди, але це робиться рідко через його громіздкість.

Третій спосіб можна застосувати, тільки якщо теги в стилі ASP були включені, використовуючи конфігураційне налаштування asp_tags.

Коли PHP обробляє файл, він просто передає його текст, поки не зустріне один з перерахованих спеціальних тегів, що повідомляє йому про необхідність почати інтерпретацію тексту як коду PHP. Потім він виконує весь знайдений код до закриваючого тега, що говорить інтерпретаторові, що далі знову йде просто текст. Цей механізм дозволяє впроваджувати PHP-код у HTML – усе за межами тегів PHP залишається незмінним, тоді як у середині інтерпретується як код.

6.2. Основний синтаксис РНР <вверх>

Перше, що потрібно знати щодо синтаксису PHP, – це те, як він вбудовується в HTML-код, як інтерпретатор довідається, що це код мовою PHP. Вище вже говорилося про це. Повторюватися не будемо, відзначимо лише, що в прикладах ми найчастіше будемо використовувати варіант <?php ?>, і іноді скорочений варіант <? ?>.

Програма на PHP (та й на будь-якій іншій мові програмування) – це набір команд (операторів). Оброблювачеві програми необхідно якось відрізняти одну команду від іншої. Для цього використовуються спеціальні символи – роздільники. У PHP оператори розділяються так само, як і в C Perl або Pascal, – кожен вираз закінчується крапкою з комою.

Закриваючий тег «?>» розуміється як кінець інструкції, тому перед ним крапку з комою не ставлять. Наприклад, два наступні фрагменти коду еквівалентні:

<?php
 echo "Hello, world!"; // крапка з комою
                       // наприкінці команди
                       // обов'язкова
?>
<?php
 echo "Hello, world!"
?>

Часто при написанні програм виникає необхідність робити які-небудь коментарі до коду, що ніяк не впливають на сам код, а тільки пояснюють його. Це важливо при створенні великих програм і у випадку, якщо кілька людей працюють над одною програмою. При наявності коментарів у програмі в її коді розібратися набагато простіше. В усіх мовах програмування передбачена можливість включати коментарі в код програми. PHP підтримує кілька видів коментарів: у стилі C, C++ і оболонки Unix. Символи // і # позначають початок однорядкових коментарів, /* і */ – відповідно початок і кінець багатострічкових коментарів.

<?php
 echo "Мене звуть Андрій"; 
      // Це однорядковий коментар 
      // у стилі С++
 echo "Прізвище моє Вельгач";
      /* Це багатострічковий коментар.
       Тут можна написати кілька рядків. 
       При виконанні програми усе, що
       знаходиться тут (закоментовано),
       буде ігноровано. */
echo"Я вивчаю PHP";
       # Це коментар у стилі 
       # оболонки Unix
?>

Важливим елементом кожної мови є змінні, константи й оператори. Розглянемо, як виділяються й обробляються ці елементи в PHP.

6.3. Змінні в РНР. <вверх>

Змінна в PHP позначається знаком долара, за яким слідує її ім'я. Наприклад:

$my_var

Ім'я змінної чуттєве до регістра, тобто змінні $my_var і $My_var різні.

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

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

<?php
$first = ' Text '; // Присвоюємо $first значення ' Text '
$second = $first; // Присвоюємо $second значення змінної $first
$first = ' New text '; // Змінюємо значення $first на ' New text '
echo "Змінна з ім'ям first "."дорівнює $first <br>"; 
        // виводимо значення $first
echo "Змінна з ім'ям second ". "дорівнює $second"; 
        // виводимо значення $second
?>

Результат роботи цього скрипта буде наступним:

Змінна з ім'ям first дорівнює New text 
Змінна з ім'ям second дорівнює Text 

PHP 4, крім цього, пропонує ще один спосіб присвоєння значень змінним: присвоєння по посиланню. Для того, щоб присвоїти значення змінної по посиланню, це значення повинне мати ім'я, тобто воно повинно бути представлено якою-небудь змінною. Щоб вказати, що значення однієї змінної присвоюється іншій змінній по посиланню, потрібно перед ім'ям першої змінної поставити знак амперсанд &.
Розглянемо той же приклад, що і вище, тільки будемо присвоювати значення змінної first змінній second по посиланню:

<?php
$first = ' Text '; // Привласнюємо $first значення ' Text '
$second = &$first; 
/* Робимо посилання на $first через $second.
   Тепер значення цих змінних будуть завжди збігатися */
// Змінимо значення $first на ' New text '
$first = ' New text ';
echo "Змінна з ім'ям first "."дорівнює $first <br>";
// виведемо значення обох змінних
echo "Змінна з ім'ям second "."дорівнює $second";
?>

Цей скрипт виведе наступне:

Змінна з ім'ям first дорівнює New text.
Змінна з ім'ям second дорівнює New text. 

Тобто разом з змінною $first змінилася і змінна $second.

6.4. Константи. <вверх>

Для збереження сталих величин, тобто таких величин, значення яких не змінюється в ході виконання скрипта, використовуються константи. Такими величинами можуть бути математичні константи, паролі, шляхи до файлів і т.п. Основна відмінність константи від змінної полягає в тому, що їй не можна присвоїти значення більше одного разу і її значення не можна анулювати після її визначення. Крім того, у константи немає приставки у вигляді знака долара і її не можна задати простим присвоюванням значення. Як же тоді можна визначити константу? Для цього існує спеціальна функція define(). Її синтаксис такий:

define("Ім'я_константи","Значення_константи",[Нечутливість_до_регістра])

За замовчуванням імена констант чуттєві до регістра. Для кожної константи це можна змінити, вказавши як значення аргументу Нечутливість_до_регістра значення True. Існує домовленність, по якій імена констант завжди пишуться у верхньому регістрі.

Одержати значення константи можна, вказавши її ім'я. На відміну від змінних, не потрібно ставити перед ім'ям константи символ $. Крім того, для одержання значення константи можна використовувати функцію constant() з ім'ям константи як параметр.

<?php
  // визначаємо константу PASSWORD
define("PASSWORD","qwerty"); 
  // визначаємо регістронезалежну константу PI зі значенням 3.14
define("PI","3.14", True);
  // виводимо значення константи PASSWORD, тобто qwerty 
echo (PASSWORD);
  // теж виведе qwerty  
echo constant("PASSWORD");
echo (password);
  /* виведе password і попередження,
     оскільки ми ввели регістрозалежну
     константу PASSWORD */
  // виводимо 3.14, оскільки константа PI регістронезалежна по визначенню
echo pi;    
?>

Крім змінних, що задаються користувачем, про які ми тільки що розповіли, у PHP існує ряд констант, обумовлених самим інтерпретатором. Наприклад, константа __FILE__ зберігає ім'я файлу програми (і шлях до нього), що виконується в даний момент, __FUNCTION__ містить ім'я функції, __CLASS__ – ім'я класу, PHP_VERSION – версія інтерпретатора PHP. Повний список визначених констант можна одержати, прочитавши посібник з PHP.

6.5. Оператори в РНР. <вверх>

Оператори дозволяють виконувати різні дії із змінними, константами і виразами. Ми ще не згадували про те, що таке вираз. Вираз можна визначити як все, що завгодно, що має значення. Змінні і константи – це основні і найбільш прості форми виразів. Існує безліч операцій (і відповідних їм операторів), з допомогою яким можна створювати вирази. Розглянемо деякі з них докладніше.

Таблиця 2.1. Арифметичні оператори
Позначення Назва Приклад
+ Додавання $a + $b
- Віднімання $a - $b
* Множення $a * $b
/ Ділення $a / $b
% Остача від ділення $a % $b

Таблиця 2.2. Стрічкові оператори
Позначення Назва Приклад
. Конкатенація (додавання рядків) $c = $a.$b
(це рядок, що складається з $a і $b)

Таблиця 2.3. Оператори присвоювання
Позначення Назва Опис Приклад
= Присвоювання Змінній ліворуч від оператора буде присвоєне значення, отримане в результаті виконання яких-небудь операцій або змінної/константи з правої сторони $a = ($b = 4) +5;
($a буде дорівнює 9,
$b буде дорівнює 4)
+=   Скорочення. Додає до змінної число і потім привласнює їй отримане значення $a += 5;
(еквівалентно $a = $a + 5;)
.=   Скорочено позначає комбінацію операцій конкатенації і присвоєння (спочатку додається рядок, потім отриманий рядок записується в змінну) $b = "Привіт "; $b .= "усім"; (еквівалентно $b = $b . "усім";)
У результаті: $b="Привіт усім"

Таблиця 2.4. Логічні оператори
Позначення Назва Опис Приклад
and І $a і $b істинні (True) $a and $b
&& І   $a && $b
or Або Хоча б одна з змінних $a або $b істинна (можливо, що й обидві) $a or $b
|| Або   $a || $b
xor виключає або Одна з змінних істинна. Випадок, коли вони обидві істинні, виключається $a xor $b
! Інверсія (NOT) Якщо $a=True, то !$a=False і навпаки ! $a

Таблиця 2.5. Оператори порівняння
Позначення Назва Приклад Опис
== Рівність Значення змінних рівні $a == $b
=== Еквівалентність Рівні значення і типи змінних $a === $b
!= Нерівність Значення змінних не рівні $a != $b
<> Нерівність   $a <> $b
!== Нееквівалентність Змінні не еквівалентні $a !== $b
< Менше   $a < $b
> Більше   $a > $b
<= Менше або дорівнює   $a <= $b
>= Більше або дорівнює   $a >= $b

Таблиця 2.6. Оператори інкремента і декремента
Позначення Назва Опис Приклад
++$a Пре-інкремент Збільшує $a на одиницю і повертає $a <? $a=4; echo "Повинно бути 4:".$a++; echo "Повинно бути 5:".$a; ?>
$a++ Пост-інкремент Повертає $a, потім збільшує $a на одиницю  
--$a Пре-декремент Зменшує $a на одиницю і повертає $a  
$a-- Пост-декремент Повертає $a, потім зменшує $a на одиницю  
6.6. Типи даних в РНР. <вверх>

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

  1. Чотири скалярних типи:
  2. Два змішаних типи:
  3. І два спеціальних типи:

У PHP не прийняте явне визначення типів змінних. Переважно це робить сам інтерпретатор під час виконання програми в залежності від контексту, у якому використовується змінна. Розглянемо всі перераховані типи даних.

Тип boolean (булевий або логічний тип)

Цей найпростіший тип виражає істинність значення, тобто змінна цього типу може мати тільки два значення – істина TRUE або неправда FALSE.

Щоб визначити булевий тип, використовують ключове слово TRUE або FALSE. Обидва регістронезалежні.

<?php
  $test = True;
?>

Логічні змінні використовуються в різних керуючих конструкціях (циклах, умовах і т.п). Мати логічний тип, тобто приймати тільки два значення, істину або неправду, можуть також і деякі оператори (наприклад, оператор рівності). Вони також використовуються в керуючих конструкціях для перевірки яких-небудь умов. Наприклад, в умовній конструкції перевіряється істинність значення оператора або змінної й у залежності від результату перевірки виконуються ті або інші дії. Тут умова може бути істинною або хибною, що саме і відбиває змінна й оператор логічного типу.

Тип integer (цілі)

Цей тип задає число з множини цілих чисел Z = {..., -2, -1, 0, 1, 2, ...}. Цілі числа можуть бути зазначені в десяткової, шістнадцятковій або вісімковій системі числення, за бажанням з попереднім знаком «-» або «+».

Якщо ви використовуєте вісімкову систему числення, ви повинні випередити число 0 (нулем), для використання шістнадцяткової системи потрібно поставити перед числом 0x.

<?php
# десяткове число
$a = 1234;
# від’ємне число  
$a = -123;
# вісімкове число (еквівалентно 83 у десятковій системі) 
$a = 0123;
# шістнадцяткове число (еквівалентно 26 у десятковій системі)
$a = 0x1A;
?> 

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

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

У PHP не існує оператора ділення націло. Результатом 1/2 буде число з плаваючою крапкою, 0.5. Ви можете звести значення до цілого, що завжди округляє його в меншу сторону, або використати функцію round(), що округляє значення за стандартними правилами. Для перетворення змінної до конкретного типу потрібно перед змінною вказати в дужках потрібний тип. Наприклад, для перетворення змінної $a=0.5 до цілого типу необхідно написати (integer)(0.5) або (integer) $a або використовувати скорочений запис (int)(0.5). Можливість явного визначення типів по такому принципі існує для всіх типів даних (звичайно, не завжди значення одного типу можна перевести в інший тип). Ми не будемо поглиблюватися в усі тонкості визначення типів, оскільки PHP робить це автоматично в залежності від контексту.

Тип float (числа з крапкою, що плаває)

Числа з плаваючою крапкою, (вони ж числа подвійної точності або дійсні числа) можуть бути визначені з допомогою будь-якого з наступних синтаксисів:

<?php
  $a = 1.234;
  $b = 1.2e3;
  $c = 7E-10;
?> 

Розмір цілого залежить від платформи, хоча максимум, як правило, ~1.8e308 з точністю близько 14 десяткових цифр.

Тип string (стрічка)

Стрічка – це набір символів. У PHP символ – це те ж саме, що байт, це означає, що існує рівно 256 різних символів. Це також означає, що PHP не має вбудованої підтримки Unicode. У PHP практично не існує обмежень на розмір рядків, тому немає абсолютно ніяких причин турбуватися про їхню довжину.

Стрічка у PHP може бути визначена трьома різними способами:

Одинарні лапки

Найпростіший спосіб визначити стрічку – це вказати її в одинарних лапках «'». Щоб використовувати одинарні лапки всередині рядка, як і в багатьох інших мовах, перед нею необхідно поставити символ зворотної косої риски «\», тобто екранувати її. Якщо зворотна коса риска повинна йти перед одинарними лапками або бути наприкінці рядка, необхідно продублировать її «\\'».

Якщо в середині стрічки, вказаної в одинарних лапках, зворотній слеш «\» зустрічається перед будь-яким іншим символом (відмінним від «\» і «'» ), то він розглядається як звичайний символ і виводиться, як і всі інші. Тому зворотну косу риску необхідно екранувати, тільки якщо вона знаходиться наприкінці рядка, перед закриваючими лапками.

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

<?php
echo 'Також ви можете вставляти в стрічки
      символ нового рядка';
// Виведе: Щоб вивести ' треба перед нею поставити \
echo 'Щоб вивести \' треба перед'.'нею поставити \\';
// Виведе: Ви хочете вивести C:\*.*?
echo 'Ви хочете вивести C:\\*.*?';
// Виведе: Ви хочете вивести C:\*.*?
echo 'Ви хочете видалити C:\*.*?';
// Виведе: Це не вставить: \n
// новий рядок
echo 'Це не вставить: \n новий рядок';
// Виведе: Змінні $expand також
// $either не підставляються
echo 'Змінні $expand також $either'.'не підставляються';
?> 
Подвійні лапки

Якщо стрічка вказана у подвійних лапках «"», PHP розпізнає більшу кількість керуючих послідовностей як спеціальны символи. Деякі з них наведені в таблиці 2.6.

Таблиця 2.6. Керуючі послідовності
Послідовність Значення
\n Новий рядок (LF або 0x0A (10) у ASCII)
\r Повернення каретки (CR або 0x0D (13) у ASCII)
\t Горизонтальна табуляція (HT або 0x09 (9) у ASCII)
\\ Зворотна коса риса
\$ Знак долара
\" Подвійні лапки

Повторюємо, якщо ви захочете екранувати будь-який інший символ, зворотна коса риса також буде надрукована!

Найважливішою властивістю стрічок у подвійних лапках є обробка змінних.

Heredoc

Інший спосіб визначення стрічок – це використання heredoc-синтаксису. У цьому випадку стрічка повинна починатися із символу <<<, після якого йде ідентифікатор. Закінчується стрічка цим же ідентифікатором. Закриваючий ідентифікатор повинен починатися в першому стовпці рядка. Крім того, ідентифікатор повинен відповідати тим же правилам іменування, що і всі інші мітки в PHP: містити тільки буквено-цифрові символи і знак підкреслення і починатися не з цифри або знака підкреслення.

Heredoc-текст поводиться так само, як і стрічка у подвійних лапках, при цьому їх не маючи. Це означає, що вам немає необхідності екранувати лапки у heredoc, але ви як і раніше можете використовувати перераховані вище керуючі послідовності. Змінні всередині heredoc теж обробляються.

<?php
$str = <<<EOD
Приклад рядка, що охоплює кілька
рядків, з використанням
heredoc-синтаксису
EOD;
// Тут ідентифікатор – EOD. Нижче
// ідентифікатор EOT
$name = 'Вася';
echo <<<EOT
Мене кличуть "$name". 
EOT;
// це виведе "Мене кличуть "Вася"."
?> 

Зауваження: Підтримка heredoc була додана в PHP 4.

Тип array (масив)

Масив у PHP являє собою впорядковану карту – тип, що перетворює значення в ключі. Цей тип оптимізовано у декількох напрямках, тому ви можете використовувати його як масив, список (вектор), хеш-таблицю (що є реалізацією карти), стек, черга і т.д. Оскільки ви можете мати як значення інший масив PHP, можна також легко емулювати дерева.

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

Визначення за допомогою array()
array ([key] => value,[key1] => value1, ... )

Мовна конструкція array() приймає як параметри пари ключ => значення, розділені комами. Символ => встановлює відповідність між значенням і його ключем. Ключ може бути як цілим числом, так і рядком, а значення може бути будь-якого ніснуючого в PHP типу. Числовий ключ масиву часто називають індексом. Індексування масиву в PHP починається з нуля. Значення елемента масиву можна одержати, вказавши після імені масиву в квадратних дужках ключ шуканого елемента. Якщо ключ масиву являє собою стандартний запис цілого числа, то він розглядається як число, в противному випадку – як рядок. Тому запис $a["1"] рівносильний запису $a[1], так само як і $a["-1"] рівносильне $a[-1].

<?php
$books = array ("php" =>"PHP users guide",12 => true);
echo $books["php"];
//виведе "PHP users guide"
echo $books[12];     //виведе 1
?> 

Якщо для елемента ключ не заданий, то в якості ключа береться максимальний числовий ключ, збільшений на одиницю. Якщо вказати ключ, якому вже було присвоєно якесь значення, то воно буде перезаписано. Починаючи з PHP 4.3.0, якщо максимальний ключ – від’ємне число, то наступним ключем масиву буде нуль (0).

<?php
// масиви $arr і $arr1 еквіваленти
$arr = array(5 => 43, 32, 56, "b" => 12);
$arr1 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?> 

Якщо використовувати як ключ TRUE або FALSE, то його значення переводиться відповідно в одиницю і нуль типу integer. Якщо використовувати NULL, то замість ключа одержимо порожню стрічку. Можна використовувати і сам порожню стрічку як ключ, при цьому її треба брати в лапки. Так що це не те ж саме, що використання порожніх квадратних дужок. Не можна використовувати як ключ масиви й об'єкти.

Визначення за допомогою синтаксису квадратних дужок

Створити масив можна, просто записуючи в нього значення. Як ми вже говорили, значення елемента масиву можна одержати за допомогою квадратних дужок, всередині яких потрібно вказати його ключ наприклад, $book["php"]. Якщо вказати новий ключ і нове значення наприклад, $book["new_key"]="new_value", то в масив додасться новий елемент. Якщо ми не вкажемо ключ, а тільки привласнимо значення $book[]="new_value", то новий елемент масиву буде мати числовий ключ, на одиницю більший максимального існуючого. Якщо масив, у який ми додаємо значення, ще не існує, то він буде створений.

<?
$books["key"]= value; // додали в масив
                      // $books значення 
                      // value із ключем key
$books[] = value1; /* додали в масив
                      значення value1 з
                      ключем 13, оскільки
                      максимальний ключ у
                      ми був 12 */
?>

Для того щоб змінити конкретний елемент масиву, потрібно просто присвоїти йому з його ключем нове значення. Змінити ключ елемента не можна, можна тільки знищити елемент (пару ключ/значення) і додати нову. Щоб видалити елемент масиву, потрібно використовувати функцію unset().

<?php
$books = array ("php" =>"PHP users guide",12 => true);
$books[] ="Book about Perl"; // додали елемент
                    // з ключем (індексом)
                    // 13 це еквівалентно
                    // $books[13] = 
                   // "Book about Perl";
$books["lisp"] =123456; /* Це додає до масиву новий
            елемент із ключем "lisp" і
            значенням 123456 */
unset($books[12]); // Це видаляє елемент
                   // c ключем 12 з масиву 
unset ($books); // видаляє масив цілком
?> 

Помітимо, що, коли використовуються порожні квадратні дужки, максимальний числовий ключ шукається серед ключів, що існують у масиві з моменту останнього переіндексування. Переіндексувати масив можна за допомогою функції array_values().

<?php
$arr =array ("a","b","c"); 
  /* Створюємо масив зі значеннями "a", "b" і "c".
       Оскільки ключі не зазначені, вони будуть 
            0,1,2 відповідно */
print_r($arr); // виводимо масив (і ключі, і значення)
unset($arr[0]);
unset($arr[1]);
unset($arr[2]); 
         // знищуємо з нього всі значення 
print_r($arr);  // виводимо масив (і ключі, і значення)
$arr[] = "aa";  // додаємо новий елемент
                // у масив. 
                // Його індексом (ключем)
                // буде 3, а не 0
print_r($arr);
$arr =array_values($arr); // переіндексуємо масив 
$arr[] = "bb"; // ключем цього елемента буде 1
print_r($arr);
?>

Результатом роботи цього скрипта буде:

Array ( [0] => a [1] => b [2] => c )
Array ( ) 
Array ( [3] => aa ) 
Array ( [0] => aa [1] => bb ) 

Тип object (об'єкти)

Об'єкти – тип даних, що прийшов з об’єктно-орієнтованого програмування (ООП). Відповідно до принципів ООП, клас – це набір об'єктів, що володіють визначеними властивостями і методами роботи з ним, а об'єкт відповідно – представник класу. Наприклад, програмісти – це клас людей, що пишуть програми, вивчають комп'ютерну літературу і, крім того, як усі люди, мають ім'я і прізвище. Тепер, якщо взяти одного конкретного програміста, Васю Іванова, то можна сказати, що він є об'єктом класу програмістів, має ті ж властивості, що й інші програмісти, теж має ім'я, пише програми і т.п.

У PHP для доступу до методів об'єкта використовується оператор ->. Для ініціалізації об'єкта використовується вираз new, що створює для змінної екземпляр об'єкта.

<?php
  //створюємо клас людей
class Person
{
// метод, що навчає людини PHP
    function know_php()
        {
            echo "Тепер я знаю PHP";
        } 
}
$bob = new Person; // створюємо об'єкт
                   // класу людин
$bob -> know_php(); // навчаємо його PHP
?>

Тип resource (ресурси)

Ресурс – це спеціальна змінна, що отримує посилання на зовнішній ресурс (наприклад, з'єднання з базою даних). Ресурси створюються і використовуються спеціальними функціями (наприклад, mysql_connect(), pdf_new() і т.п.).

Тип Null

Спеціальне значення NULL говорить про те, що змінна не має значення.
Змінна вважається NULL, якщо:

Існує тільки одне значення типу NULL – регістронезалежне ключове слово NULL.

Hosted by uCoz