Для того, щоб програма могла запам’ятовувати інформацію та виконувати обчислення (наприклад, вік користувача або ім’я товару), використовуються змінні. Рядки, числа, булеві (логічні) прапорці є цеглинками будь-якого комп’ютерного алгоритму. У цій лекції ми розберемо: як створювати ці “контейнери” для даних в PHP, які вбудовані типи існують та як маніпулювати ними за допомогою операторів.
Змінна — це іменована область у пам’яті комп’ютера, де зберігаються певні дані. У PHP кожна змінна ОБОВ’ЯЗКОВО починається зі знака долара $.
Правила найменування змінних:
_ (напр., $_name, $age).$1user — синтаксична помилка).$my-name і $my name — помилки).$Age, $age та $AGE — це три абсолютно різні незалежні змінні.<?php
$productName = "Ноутбук"; // Створення змінної та присвоєння рядка (Камел-кейс стиль)
$product_price = 25000; // Інший поширений стиль іменування (Snake-кейс)
$Amount = 5; // Поганий тон (починати з великої літери)
// Виведення значення:
echo $productName; // браузер покаже: Ноутбук
?>
У багатьох мовах (C++, Java, C#) перед створенням змінної потрібно жорстко вказати її тип (наприклад int x = 5;). PHP — це мова з динамічною типізацією (як і JavaScript чи Python).
Вам не потрібно декларувати тип. Інтерпретатор “на льоту” (під час виконання) розуміє, який тип даних зараз лежить у змінній. Ба більше, змінна може вільно змінювати свій тип протягом роботи скрипта.
<?php
$box = 5; // зараз $box це Integer (ціле число)
var_dump($box); // int(5)
$box = "Апельсин"; // тепер PHP без проблем зробив цю ж змінну String (рядком)
var_dump($box); // string(16) "Апельсин"
?>
$count = -10;.$price = 99.99;. Розділяються КРАПКОЮ, а не комою.'...' або подвійні "..." лапки.true (істина / 1) або false (хибність / 0). Незамінні в операторах if. Наприклад, $isLogged = false;.В PHP є два принципово різних підходи до того, як об’єднати або “склеїти” декілька слів або змінних у один загальний текст.
Використовується оператор . (КРАПКА). Не плутати з плюсом (+) в JavaScript!
<?php
$firstName = "Іван";
$lastName = "Шевченко";
// Склеюємо ім'я, пробіл " " і прізвище:
$fullName = $firstName . " " . $lastName;
echo $fullName; // Результат: Іван Шевченко
?>
"")Якщо ви використовуєте подвійні лапки, PHP стає “розумним” — він читає текст всередині них на наявність знаків долара. Якщо знаходить змінну, він вбудовує її значення прямо всередину рядка без незручних крапок. Цей механізм називається Інтерполяцією (вставкою).
<?php
$apples = 5;
// ОДИНАРНІ лапки = звичайний текст (ШВИДШЕ працює)
echo 'У мене є $apples яблук'; // Виведе буквально: У мене є $apples яблук
// ПОДВІЙНІ лапки = інтерполяція (зручніше читати)
echo "У мене є {$apples} яблук"; // Виведе: У мене є 5 яблук
// Зверніть увагу на фігурні дужки { ... } - вони не обов'язкові,
// але ізолюють назву змінної (щоб слово не "злиплося" з наступними літерами).
?>
PHP володіє стандартною математикою.
Арифметичні:
$a + $b$a - $b$a * $b$a / $b$a % $b. Наприклад, 10 % 3 = 1 (три трійки вміщуються, одиничка залишається). Допомагає визначити парні/непарні числа.Оператори інкременту (Збільшення на 1):
Найпопулярніший оператор в циклах. Запис $i++ рівнозначний запису $i = $i + 1; або $i += 1;.
+=, -=Замість довгого $total = $total + $price; програмісти пишуть скорочено: $total += $price;. Це ж працює з усіма іншими (*=, /=). А для рядків це .= ($text .= " кінець!"; доклеїть кінець).
Повертають завжди БУЛЕВЕ (Boolean) значення true або false.
> (Більше), < (Менше)>= (Більше-дорівнює), <= (Менше-дорівнює)== (Дорівнює — нестрога рівність). Конвертує типи перед порівнянням ("5" == 5 буде true).=== (Ідентично — строга рівність). Перевіряє і значення, і тип без їх приведення ("5" === 5 буде false, бо рядок і число - це різне). Always use strict check!!= або <> (Не дорівнює)!== (Строго не дорівнює)AND, OR, NOTДозволяють поєднувати декілька умов.
true, тільки якщо ОБИДВІ умови true. (Наприклад: $age > 18 && $money > 100).| **Логічне “АБО” ( | або or):** Повертає true, якщо ХОЧА Б ОДНА умова true. (Наприклад: $isWeekend || $isHoliday). |
true, вона стане false. Наприклад, !$isLogged (читати як “якщо НЕ залогінений”).$, вони чутливі до регістру і їхній тип визначається автоматично та може бути змінений під час виконання програми."" лапках).===), щоби убезпечити логіку програми від несподіваного автоприведення типів.$ 5User, $my-city, $First Name, #id.$text = "5" + 10; у PHP? Чому (згадайте динамічну типізацію та Type Juggling)?'...') і подвійними ("...") лапками під час роботи з текстом? Який варіант працює трохи швидше і чому?+) для цього, як в JavaScript?($a === $b) і ($a == $b), якщо $a = "10" (рядок), а $b = 10 (число)? Поясніть концепцію та небезпеку нестрогої рівності.