Основи PHP – Змінні та Типи Даних

Коли я вперше почав вивчати основи PHP, пам’ятаю, як намагався зрозуміти, чому перед кожною змінною стоїть знак долара. Здавалося дивним, але згодом це стало другою натурою. PHP — це мова, яка дозволяє створювати динамічні веб-сайти, і все починається з розуміння змінних та типів даних (основні типи даних php). У цій статті розповім про базові концепції, які стануть фундаментом вашої роботи з PHP.

Що таке змінні в PHP і чому вони важливі

Змінна в PHP — це контейнер для збереження інформації. Уявіть коробку з наклейкою, куди ви можете покласти що завгодно: текст, число, список покупок або навіть складні об’єкти. У PHP змінні починаються з символу долара $, після якого йде ім’я змінної. Це одна з особливостей мови, яка відрізняє її від JavaScript або Python.

Створити змінну просто — достатньо використати знак рівності для присвоєння значення:

<?php
$username = "Іван";
$currentYear = 2025;
$isLoggedIn = true;
?>Code language: HTML, XML (xml)

Зверніть увагу: PHP — це мова з динамічною типізацією, тобто вам не потрібно явно вказувати тип змінної під час її створення. Інтерпретатор сам визначить, що $username — це рядок, $currentYear — число, а $isLoggedIn — булеве значення.

Правила іменування змінних

Не всі імена змінних є допустимими. Є кілька простих правил, які варто запам’ятати:

  • Ім’я завжди починається з символу $
  • Після долара має йти літера або підкреслення, а не цифра
  • Імена чутливі до регістру: $Name і $name — це різні змінні
  • Не можна використовувати пробіли або спеціальні символи (окрім підкреслення)

Приклади правильних імен: $userName, $user_age, $_temporary. Неправильні: $2fast, $user-name, $my variable.

Основні типи даних PHP

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

String (Рядки)

Рядки — це послідовності символів, які можуть містити текст. Їх можна оголошувати за допомогою одинарних або подвійних лапок:

<?php
$greeting = "Привіт, світ!";
$name = 'Олександр';

// Різниця між одинарними та подвійними лапками
$age = 30;
echo "Мені $age років"; // Виведе: Мені 30 років
echo 'Мені $age років'; // Виведе: Мені $age років
?>Code language: HTML, XML (xml)

Подвійні лапки дозволяють інтерполяцію — PHP автоматично підставить значення змінної в рядок. Одинарні лапки сприймають все буквально. Це важливо знати, особливо коли працюєте з великими текстами чи SQL-запитами.

Integer та Float (Цілі та дробові числа)

Цілі числа (integer) не мають десяткової частини, тоді як числа з плаваючою точкою (float) містять дробову частину:

<?php
$quantity = 10;          // Integer
$price = 99.95;          // Float
$total = $quantity * $price;

echo "Загальна вартість: $total"; // 999.5
?>Code language: HTML, XML (xml)

PHP автоматично виконує математичні операції між числами різних типів, але іноді це може призвести до несподіваних результатів через округлення float-чисел.

Boolean (Булеві значення)

Булеві значення мають лише два стани: true (істина) або false (хибність). Вони часто використовуються в умовних конструкціях:

<?php
$isAdmin = true;
$hasAccess = false;

if ($isAdmin) {
    echo "Доступ дозволено";
} else {
    echo "Доступ заборонено";
}
?>Code language: HTML, XML (xml)

Array (Масиви)

Масиви дозволяють зберігати декілька значень в одній змінній. Існують індексовані масиви та асоціативні масиви (де ключами є рядки):

<?php
// Індексований масив
$colors = ["червоний", "зелений", "синій"];
echo $colors[0]; // червоний

// Асоціативний масив
$user = [
    "name" => "Марія",
    "age" => 28,
    "city" => "Львів"
];
echo $user["name"]; // Марія
?>Code language: HTML, XML (xml)

Масиви — це потужний інструмент, який дозволяє структурувати дані. У реальних проектах ви постійно працюватимете з масивами, наприклад, отримуючи дані з бази даних чи API.

Object (Об’єкти)

Об’єкти — це екземпляри класів, які дозволяють групувати дані та функціонал разом. Це основа об’єктно-орієнтованого програмування (ООП) у PHP:

<?php
class User {
    public $name;
    public $email;
    
    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
    }
    
    public function greet() {
        return "Привіт, я {$this->name}";
    }
}

// Створення об'єкта
$user = new User("Олена", "olena@example.com");
echo $user->greet(); // Привіт, я Олена
echo $user->email;   // olena@example.com
?>Code language: PHP (php)

Об’єкти дозволяють створювати складні структури даних з власною логікою. У реальних проектах ви постійно працюватимете з об’єктами — від моделей бази даних до HTTP-запитів. Це потужний інструмент, який відкриває двері до сучасних патернів розробки.

NULL

Спеціальне значення NULL означає, що змінна не має значення. Це корисно для перевірки, чи була змінна ініціалізована:

<?php
$data = null;

if ($data === null) {
    echo "Дані не встановлені";
}
?>Code language: HTML, XML (xml)

Перевірка типу змінної

Іноді потрібно дізнатися, який саме тип має змінна. PHP надає кілька корисних функцій для цього:

<?php
$value = "123";

echo gettype($value);     // string
var_dump($value);         // string(3) "123"

// Перевірка конкретного типу
if (is_string($value)) {
    echo "Це рядок";
}

if (is_numeric($value)) {
    echo "Це число або числовий рядок";
}
?>Code language: HTML, XML (xml)

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

Приклад використання var_dump для налагодження змінних у PHP

Приведення типів (Type Casting)

PHP дозволяє явно перетворювати один тип даних в інший. Це називається приведенням типів або кастингом:

<?php
$stringNumber = "42";
$intNumber = (int)$stringNumber;  // Перетворення в integer

$floatValue = 3.14;
$stringValue = (string)$floatValue; // Перетворення в string

$number = 1;
$boolValue = (bool)$number;       // Перетворення в boolean (true)
?>Code language: HTML, XML (xml)

Автоматичне приведення типів працює непомітно, але іноді може призвести до помилок. Наприклад, рядок “10 яблук” при перетворенні в число стане просто 10, що може бути неочікуваним результатом.

Область видимості змінних

Змінні в PHP мають область видимості — місце в коді, де вони доступні. Існує три основні області:

  • Локальна — змінна існує тільки всередині функції
  • Глобальна — змінна доступна в основному коді, але не всередині функцій
  • Статична — змінна зберігає своє значення між викликами функції
<?php
$globalVar = "Я глобальна";

function testScope() {
    global $globalVar;  // Доступ до глобальної змінної
    $localVar = "Я локальна";
    echo $globalVar;
    echo $localVar;
}

testScope();
// echo $localVar; // Помилка! Змінна недоступна
?>Code language: HTML, XML (xml)

Суперглобальні змінні

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

  • $_GET — дані з URL-параметрів
  • $_POST — дані з POST-запитів
  • $_SERVER — інформація про сервер та виконання скрипта
  • $_SESSION — дані сесії користувача
  • $_COOKIE — дані з cookies
<?php
// Отримання даних з форми
if (isset($_POST['username'])) {
    $username = $_POST['username'];
    echo "Привіт, $username!";
}

// Отримання URL-параметрів
$page = $_GET['page'] ?? 'home';  // Оператор ?? встановлює значення за замовчуванням
?>Code language: HTML, XML (xml)

Константи — незмінні значення

Іноді потрібні значення, які не повинні змінюватися протягом виконання скрипта. Для цього використовують константи:

<?php
define("SITE_NAME", "TheStack.dev");
const MAX_LOGIN_ATTEMPTS = 3;

echo SITE_NAME; // TheStack.dev

// Константи не можна змінити
// SITE_NAME = "Інше"; // Помилка!
?>Code language: HTML, XML (xml)

Константи зазвичай пишуть великими літерами — це загальноприйнята угода серед PHP-розробників. Вони корисні для налаштувань, які використовуються в багатьох місцях коду.

Поширені помилки початківців

З власного досвіду можу сказати, що найчастіші проблеми виникають через:

  • Забування знака долара — PHP не розпізнає змінну без $
  • Плутанина з регістром — пам’ятайте, що $Name$name
  • Використання невстановлених змінних — завжди перевіряйте існування змінної функцією isset()
  • Неправильне порівняння — використовуйте === замість == для суворого порівняння

Переваги та недоліки динамічної типізації PHP

Динамічна типізація PHP має свої плюси та мінуси, які варто розуміти:

Переваги:

  • Швидкий старт розробки — не треба декларувати типи даних PHP
  • Гнучкість у роботі з даними різних типів
  • Менш “церемонний” код порівняно з Java чи C#
  • Автоматичне перетворення типів у багатьох випадках

Недоліки:

  • Ризик помилок через неявне перетворення типів
  • Складніше налагодження великих проектів
  • Відсутність автокомплішену в IDE без додаткових анотацій
  • Можливі неочікувані результаті операцій з різними типами

У сучасних версіях PHP (7.0+) з’явилася можливість оголошувати типи параметрів та значень, що повертаються, що допомагає уникати багатьох помилок.

Практичні поради

Коли працюєте зі змінними в реальних проектах, дотримуйтесь цих рекомендацій:

  1. Використовуйте змістовні імена змінних — $userEmail краще за $ue
  2. Ініціалізуйте змінні перед використанням — це допоможе уникнути помилок
  3. Використовуйте var_dump() та print_r() для налагодження
  4. Застосовуйте строгу типізацію в критичних частинах коду
  5. Завжди валідуйте дані з $_POST, $_GET та інших зовнішніх джерел

Висновок (про основи PHP)

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

Пам’ятайте: PHP постійно розвивається. З сучасними інструментами розробки та правильним підходом до написання коду, ви зможете створювати потужні та надійні веб-рішення.

Рекомендуємо прочитати

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *