Урок 2. Типи даних в php: речові, цілі числа, рядки, масиви, об'єкти, логічні величини
У цьому уроці ми ближче познайомимося з типами даних і змінними в PHP. Це потрібно для того, щоб ми змогли краще зрозуміти сценарій, наведений в попередньому уроці, дізнатися, що і як працює, яким чином модифікувати код.
Тепер поговоримо про типи даних в php. Мови програмування можна розділити на дві групи: мови з динамічною типізацією і мови зі статичної типізацією. PHP належить до першої групи, тобто - це мова з динамічною типізацією. Це означає те, що в php існують різні типи даних:
- Речові числа (real);
- Цілі числа (integer);
- Рядки (string);
- Масиви (array);
- Об'єкти (object);
- Логічні величини (boolean).
1.Вещественние числа (real);
Речові числа - це числа, в яких є дрібна частина (їх також називають числами з плаваючою точкою). Навіщо використовувати речові числа в PHP? Справа в тому, що цілі числа не завжди підходять для розрахунків. Іноді, нам потрібні більш точні вимірювання, наприклад, вимірювання температури або фінансові розрахунки, при яких вказуються дробові частини. Зверніть увагу на те, що для відділення дробової частини від цілої в php слід використовувати точку, а не кому.
2. Мета числа (integer);
Ціле число - це послідовність з однієї або декількох цифр без дробової частини. Запис цілого числа в PHP може бути різною:
Звичайна десятеричная система числення -
Шістнадцяткова система (коли число починається з 0x) -
Вісімкова система (число починається з 0) -
Цілі числа в php можуть бути як позитивним так і негативними, залежно від того який знак - «плюс» чи «мінус» стоїть перед ними.
3.Строкі (string);
Що таке рядок вphp. Це послідовний набір символів, який є одним цілим, але при цьому є доступ до символів, що входять в цей набір. Рядки в php, як правило, не використовують для обчислень, а служать для передачі смислового навантаження. Ось кілька прикладів рядків:
При програмуванні на php все рядки можна розділити на 3 види:
1). Рядки, обрамлені одинарними лапками (апострофами);
2). Рядки, обрамлені подвійними лапками;
3). Вбудовані документи.
При використанні строкового значення в програмі, його потрібно брати в лапки, або ж використовувати синтаксис вбудованої документації. Php, як вже було сказано раніше, є мовою з динамічною типізацією. Даний тип мов програмування в свою чергу ділиться на дві групи:
- строго типізовані (в цих мовах веб програмування строго обмежені операції з різнотипними даними, наприклад додавання цілого числа і рядки);
- слабо типізовані (в таких мовах операції з різнотипними даними можливі).
Так ось, php - це мова зі слабкою типізацією.
Наприклад, якщо взяти будь-яке число, і укласти його в лапки, то дана послідовність буде сприйнята інтерпретатором php як рядок, а не як число. Але тут слід зауважити, що пі складання, наприклад рядки "100" і числа 10 ми отримаємо результат - 110. Висновок такий - php сам визначає тип даних і потім проводить відповідні операції. Цю особливість треба мати на увазі при програмуванні на php.
Зараз ми розглянемо різницю між використанням подвійних і одинарних лапок в php. Цей матеріал дуже важливий, так як неправильний вибір лапок в деяких випадках може привести до непрацездатності веб-додатки.
Всередині подвійних лапок - відбувається інтерпретація змінних, в результаті чого на виході ми отримуємо їх значення;
Усередині одинарних лапок - змінні не інтерпретуються, тобто рядок пишеться як є.
Закріпимо теорію на практиці:
Ми отримаємо один і той же результат - Sasha. так як в рядках немає змінних.
Розглянемо ще один приклад:
$ Sentence1 = "Його звуть $ name";
$ Sentence2 = 'Його звуть $ name';
У першому випадку ми отримуємо - Його звуть Sasha. а в другому - Його звуть $ name.
Потрібно завжди пам'ятати цю відмінність, щоб уникнути помилок в коді.
Представляємо вашій увазі таблицю службових символів. які також часто використовуються в рядках крім звичайних символів:
Іноді виникає ситуація, коли на екран треба вивести сам службовий символ так, щоб він не інтерпретувався. Для цього використовують операцію екранування - додавання перед символом зворотної косої риси- \.
В результаті виконання даного php скрипта ми отримаємо наступне:
Як ми бачимо, одна з зворотних косих рис зникла, так як вона була службовим символом, який відповідав за те, щоб на екрані було видно тільки те, що задумав веб-програміст.
Аналогічним чином екрануються і інші службові символи представлені в таблиці вище.
Тепер розглянемо випадок екранування подвійних лапок. так як тут є деякі особливості.
Розглянемо ось такий скрипт:
Даний код php викличе помилку, чому так? Справа в тому, що коли інтерпретатор обробляє цей скрипт, він вважає, що рядковий вираз закінчується після другої лапки. Після нього згідно синтаксису мови програмування php має йти або продовження вираження, або його обмежувач. Замість цього в коді йде слово - Бійцівський, що і змушує інтерпретатор видати помилку.
Як вирішити цю проблему? Тут є 2 варіанти:
1. Можна екранувати внутрішні лапки за допомогою зворотних косих рис;
2. Або ж треба замінити внутрішні або зовнішні подвійні лапки на одинарні.
Якщо Ви вибрали другий варіант, то треба бути обережним зі змінними, так як вони не інтерпретуються в разі, якщо розміщені між внутрішніми подвійними лапками, які в свою чергу укладені в одинарні. приклади:
В результаті виконання скрипта ми отримаємо наступний результат:
Фільм називається "Бійцівський клуб", я дивився його в минулому році.
Фільм називається "$ book", я дивився його в минулому році.
Фільм називається 'Бійцівський клуб', я дивився його в минулому році.
Як бачимо з прикладу, найбільш підходящим варіантом в даному конкретному випадку є метод екранування внутрішніх подвійних лапок.
Третім видом строкових значень після рядків з одинарними і подвійними лапками слід вбудована документація (від англ. Heredoc). Строкове значення обмежується за допомогою символу і двох ідентифікаторів, які є довільними.
Результат виконання скрипта:
Ви бачите приклад рядка з "неекранованими лапками" і
У прикладі були використані довільні ідентифікатори. Використання вбудованої документації дуже зручно при встановленні в сценарії великих шматків тексту.
4.Массіви (array);
Що таке масив вphp? Масив (від англ. Array) - це список елементів одного типу. В php Існують 3 види масивів:
У свою чергу будь-який такий масив може бути одновимірним або багатовимірним. Для кращого розуміння поняття масиву його можна порівняти з футбольною командою, в якій є гравці (елементи), а в кожного гравця є номер (ключ) та прізвище (значення). Особливістю індексів масивів в php є те, що нумерація починається з нуля, а не з одиниці. Таким чином футбольну команду можна представити у вигляді масиву:
Більш докладно масиви будуть розглянуті в наступних уроках.
5.Об'екти (object);
Об'єкти - це ще однин тип даних в мові програмування php. Об'єкти в php неможливо розглядати без знайомства з ООП (об'єктно-орієнтованим програмуванням). Об'єкти, як і масиви, будуть детально розглянуті в наших наступних уроках.
6.Логіческіе величини (boolean);
Цей тип даних по праву вважають одним з найпростіших в PHP. так як він може мати тільки одне з двох значень - яке значення істина (англ. true), або брехня (англ. false). Логічні величини або як їх ще називають, булеві, можуть використовуватися двома способами - як результат логічних операцій або як значення змінних. При використанні логічних величин як змінних, ключові регістронезавісімого слова TRUE і FALSE є їх значеннями. приклад:
В даному випадку змінна $ example має значення TRUE і в той же час є істиною. У програмуванні на php дуже часто застосовують логічні операції, де використовуються логічні величини. Можливо, ви вже знайомі з умовними керуючими конструкціями, які засновані на логічних величинах. приклад:
У чому суть цього коду? Він перевіряє, чи дорівнює змінна $ example числу 10. Якщо це так, то порівняння $ example == 10 повертає значення TRUE, при цьому виконується код в фігурних дужках. В іншому випадку порівняння повертає FALSE і як наслідок код укладений у фігурні дужки не виконується.
Крім двох ключових слів TRUE і FALSE в мові програмування php передбачені й інші варіанти конвертації різних типів даних в логічні величини. У наступній таблиці Ви зможете ознайомитися з типами даних, значення яких інтерпретуються як FALSE або TRUE.
Як можна використовувати дані з таблиці?
Їх значення можна привласнювати змінним і використовувати їх в логічних операціях.
У першому рядку коду змінної $ example було присвоєно значення 0. Далі скрипт перевіряє значення змінної $ example і виводить рядок $ example = FALSE, тому що значення $ example дорівнює нулю. Де тут логічна операція? Справа в тому, що вираз if ($ example) являє собою СКОРОЧЕННЯ варіант логічної операції - if ($ example == TRUE).
Зверніть увагу, в прикладі є операція екранування, перед знаками долара була використана зворотна коса риска, в результаті ми вивели ім'я змінної, а не її значення.