Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Коли я вперше почав вивчати основи 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
$greeting = "Привіт, світ!";
$name = 'Олександр';
// Різниця між одинарними та подвійними лапками
$age = 30;
echo "Мені $age років"; // Виведе: Мені 30 років
echo 'Мені $age років'; // Виведе: Мені $age років
?>Code language: HTML, XML (xml)Подвійні лапки дозволяють інтерполяцію — PHP автоматично підставить значення змінної в рядок. Одинарні лапки сприймають все буквально. Це важливо знати, особливо коли працюєте з великими текстами чи SQL-запитами.
Цілі числа (integer) не мають десяткової частини, тоді як числа з плаваючою точкою (float) містять дробову частину:
<?php
$quantity = 10; // Integer
$price = 99.95; // Float
$total = $quantity * $price;
echo "Загальна вартість: $total"; // 999.5
?>Code language: HTML, XML (xml)PHP автоматично виконує математичні операції між числами різних типів, але іноді це може призвести до несподіваних результатів через округлення float-чисел.
Булеві значення мають лише два стани: true (істина) або false (хибність). Вони часто використовуються в умовних конструкціях:
<?php
$isAdmin = true;
$hasAccess = false;
if ($isAdmin) {
echo "Доступ дозволено";
} else {
echo "Доступ заборонено";
}
?>Code language: HTML, XML (xml)Масиви дозволяють зберігати декілька значень в одній змінній. Існують індексовані масиви та асоціативні масиви (де ключами є рядки):
<?php
// Індексований масив
$colors = ["червоний", "зелений", "синій"];
echo $colors[0]; // червоний
// Асоціативний масив
$user = [
"name" => "Марія",
"age" => 28,
"city" => "Львів"
];
echo $user["name"]; // Марія
?>Code language: HTML, XML (xml)Масиви — це потужний інструмент, який дозволяє структурувати дані. У реальних проектах ви постійно працюватимете з масивами, наприклад, отримуючи дані з бази даних чи API.
Об’єкти — це екземпляри класів, які дозволяють групувати дані та функціонал разом. Це основа об’єктно-орієнтованого програмування (ООП) у 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 означає, що змінна не має значення. Це корисно для перевірки, чи була змінна ініціалізована:
<?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() особливо корисна під час налагодження — вона показує не тільки тип, а й детальну інформацію про структуру змінної.


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-розробників. Вони корисні для налаштувань, які використовуються в багатьох місцях коду.
З власного досвіду можу сказати, що найчастіші проблеми виникають через:
$$Name ≠ $nameisset()=== замість == для суворого порівнянняДинамічна типізація PHP має свої плюси та мінуси, які варто розуміти:
У сучасних версіях PHP (7.0+) з’явилася можливість оголошувати типи параметрів та значень, що повертаються, що допомагає уникати багатьох помилок.
Коли працюєте зі змінними в реальних проектах, дотримуйтесь цих рекомендацій:
$userEmail краще за $uevar_dump() та print_r() для налагодження$_POST, $_GET та інших зовнішніх джерелРозуміння змінних та типів даних — це фундамент, на якому будується вся робота з PHP. Почавши з простих концепцій, ви поступово перейдете до створення складних веб-додатків. Головне — практикуватися, експериментувати та не боятися помилок. Кожна помилка — це урок, який допоможе стати кращим розробником.
Пам’ятайте: PHP постійно розвивається. З сучасними інструментами розробки та правильним підходом до написання коду, ви зможете створювати потужні та надійні веб-рішення.