Типи даних – курс РНР для початківців

php-logoРНР може оброблювати 8 різних типів даних, які можуть бути розподілені на 3 категорії: скалярні, поєднані та спеціальні типи даних.
Усе не так складно, як може здаватися на перший погляд. Ви вже знайомі з половиною цих типів даних, якщо вивчали математику у школі.

Скалярні типи даних

Цілі числа (integer) – це будь-яке ціле число, що може бути додатнім чи від’ємним. Наприклад: 10, -74.

Число з плаваючою крапкою (double/float) – дробне число з різною кількістю цифр після крапки, наприклад: 128.56 та -55.015.

Рядок (string) – сполучення літер, наприклад: привіт усім!
Логіка (boolean: true, false) – може приймати значення правда та неправда. Найбільш часто логіка використовується при роботі з операторами умови.

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

Поєднані типи даних
Масив (array) – містить кілька значень, проіндексованих числами або рядками.
Об’єкт (object) – може мати декілька властивостей і методів.
Масив і об’єкт схожі у тому, що обидва вони можуть зберігати кілька значень. Це все, що ми повинні знати на даний момент.

Спеціальні види даних
Ресурс (resource) використовується для доступу до зовнішніх ресурсів, наприклад, з’єднання з базою даних або файлом.
Нульовий (null) означає, що змінній ще не задано жодного значення.

Вільна зміна типу даних у PHP
PHP є гнучкою мовою, що означає, що ви можете змінити значення змінної в будь-який час. Наприклад, в Java як тільки ви визначаєте змінну і її тип даних, ви не можете змінити їх – змінна має завжди містити дані тільки того типу, що ми визначили. Наприклад:

int year = 2012;
year = 'text'; // це твердження хибне, тому що ми визначили змінну як ціле число

Рік – це ім’я змінної, що ми задали. Int (intrger) – це тип даних зазначеної змінної – цілі числа. Таким чином, змінна рік тепер може містити тільки цілі значення, в іншому випадку ми отримаємо повідомлення про помилку. Але у PHP, ми можемо не думати про це:

$year = 2012;
$year = 'The end of the world is scheduled for '.$year;
echo $year;
// Результатом echo буде: "кінець світу назначено на 2012"

Як визначити тип даних змінної
Ми можемо легко визначити тип даних змінної використовуючи функцію gettype(). Необхідно лише зазначити ім’я змінної у дужках – gettype($var_name). Розгляньмо кілька прикладів:

$var;
echo gettype($var) . '
'; // показує "NULL", тому що ми не присвоїли ніякого значення змінній

$var = 58;
echo gettype($var) . '
'; // показує "integer"

$var = 12.52;
echo gettype($var) . '
'; // показує "double"

$var = "wassup";
echo gettype($var) . '
'; // показує "string"

Також, ви можете перевірити чи містить змінна конкретний тип даних за допомогою наступних функцій:

is_int( $var ) покаже true, якщо змінна – ціле число (integer), якщо ні, то – false.
is_float( $var ) покаже true, якщо змінна – число з плаваючою крапкою, якщо ні, то – false.
is_string( $var ) покаже true, якщо змінна – рядок тексту (string), якщо ні, то – false.
is_bool( $var ) покаже true, якщо змінна – логіка (boolean), якщо ні, то – false.
is_array( $var ) покаже true, якщо змінна – масив (array), якщо ні, то – false.
is_object( $var ) покаже true, якщо змінна – об’єкт (object), якщо ні, то – false.
is_resource( $var ) покаже true, якщо змінна – ресурс (resource), якщо ні, то – false.
is_null( $var ) покаже true, якщо змінна – NULL, якщо ні, то – false.

А ось приклади коду:

$var = 69;
echo is_int($var); // покаже 1, що означає твердження ПРАВДИВЕ

echo is_string($var); // браузер нічого не відобразить, бо твердження ХИБНЕ

Використовуючи оператори умови: якщо і то (if, else) у PHP, ми можемо поліпшити інформацію, що показує браузер:

$var = 'Hello';
if ( is_string($var) ) {
echo "Так! Це рядок тексту";
}else{
echo 'Значення змінної не належить до типу даних рядок тексту';
}

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

Підсумок
Ви дізналися що таке типи даних у PHP та те, що вони бувають: скалярними, поєднаними і спеціальними. Ми також дізналися про вільну зміну типу даних у РНР і як перевірити тип даних змінної. Щасливого кодування!

You may also like

11 comments

  1. Я знайшов ту статтю з якої робився переклад. Непогано переклали але не все у тій статті вірно. По-перше, масив це не тип даних а контейнер для зберігання даних будь-якого типу. Об’єкт також не тип даних, клас – тип даних, саме клас являється користувацьким типом даних, а об’єкт це вже конкретний екземпляр даних цього типу. Непогано перекладаєте але не знаючи програмування важко вести уроки.

  2. “Вільна зміна типу даних у PHP” – динамічна типізація. Це означає що при необхідності інтерпритатор сам приводить дані до потрібного типу. Термін “loosely-typed” не перекладається буквально на українську мову так як ви переклали.
    “Використовуючи оператори умови: якщо і то (if, else) у PHP, ми можемо поліпшити інформацію, що показує браузер:” – а тут не завадило хоча би вдуматися в те що ви написали. Що значить “поліпшити інформацію”? вона що була погіршена?
    Якщо продовжувати в такому стилі, ви ризикуєте ще більше заплутати читача ніж його навчити.

  3. Спасибо за статью. Правда пришлось использовать google.translate. поставьте его приложение для быстрого перевода себе на сайт

  4. Так, з вами згоден. У якості перекладу припустились кількох серйозних помилок. Будемо виправляти ситуацію.

  5. Хороший пример работы с типами данных на PHP, использую именно этот язык ООП в написании скриптов для сайта.

  6. “Використовуючи оператори умови: якщо і то (if, else) у PHP, ми можемо поліпшити інформацію, що показує браузер:” – а тут не завадило хоча би вдуматися в те що ви написали.

  7. Із заголовка думав що тут йтиметься лише про типи даних в самих змінних, проте бачу тут і массиви зачепили, і структури…