Введение в переменные PHP
В PHP переменная — это именованный контейнер для хранения значений в памяти. Переменные обозначаются знаком доллара ($) перед именем.
В PHP переменная — это именованный контейнер, хранящий значение в памяти. Переменные обозначаются знаком доллара ($), за которым следует имя переменной. Значение переменной можно задавать, изменять и читать в любой момент выполнения PHP-скрипта, что и делает скрипт динамическим, а не фиксированным блоком вывода.
В этой главе рассматривается объявление переменных, правила именования, типы данных, которые могут хранить переменные, механизм автоматического определения типа в PHP, а также основные операции с переменными.
Объявление переменной
Переменная создаётся в момент присваивания ей значения. В PHP нет отдельного ключевого слова для «объявления» — присваивание и есть объявление:
PHP define a variable
<?php
$variable_name = value;Здесь $variable_name — это имя переменной, а value — то, что в ней хранится. Полный рабочий пример:
<?php
$greeting = "Hello, World!";
$year = 2024;
echo $greeting; // Hello, World!
echo "\n";
echo $year; // 2024Вывод:
Hello, World!
2024Переменной необязательно сразу присваивать значение, однако чтение необъявленной переменной вызывает предупреждение и возвращает NULL, поэтому всегда присваивайте значение перед использованием.
Правила именования
Допустимое имя переменной PHP:
- Начинается с буквы или символа подчёркивания (
_) — но не с цифры. - После первого символа содержит только буквы, цифры и символы подчёркивания.
- Чувствительно к регистру:
$name,$Nameи$NAME— три разные переменные.
<?php
$user_age = 30; // valid
$_token = "ab"; // valid (starts with underscore)
$2cool = 1; // INVALID — cannot start with a digitПо соглашению переменные PHP именуются в стиле snake_case ($first_name), хотя camelCase ($firstName) тоже широко используется. Выберите один стиль и придерживайтесь его.
Типы данных, которые может хранить переменная
PHP является динамически типизированным языком: тип не объявляется явно, и одна переменная может хранить разные типы на протяжении своей жизни. Тип определяется из присваиваемого значения.
- String — последовательность символов:
$name = "John Doe"; - Integer — целое число:
$age = 25; - Float — число с десятичной точкой:
$average = 7.5; - Boolean —
trueилиfalse:$is_active = true; - Array — упорядоченная коллекция значений:
$fruits = ["apple", "banana", "orange"]; - Object — экземпляр класса:
$person = new Person(); - NULL — переменная без значения:
$email = null;
Проверить значение и тип переменной во время выполнения можно с помощью var_dump():
<?php
$age = 25;
$average = 7.5;
$name = "Sara";
var_dump($age);
var_dump($average);
var_dump($name);Вывод:
int(25)
float(7.5)
string(4) "Sara"Подробнее о каждом типе читайте в разделе Типы данных PHP.
Нестрогая типизация и приведение типов
Поскольку тип переменной определяется её значением, переприсваивание меняет тип:
<?php
$x = 10; // $x is an integer
$x = "ten"; // now $x is a string — perfectly legal
$x = 3.14; // now $x is a floatPHP также автоматически преобразует типы во многих выражениях (это называется приведением типов). Например, строка с числом воспринимается как число в арифметических операциях:
<?php
$result = "5" + 3;
echo $result; // 8 — the string "5" is converted to the integer 5Это удобно, но может удивить. Когда требуется определённый тип, выполняйте явное приведение: (int) $value, (float) $value или (string) $value.
Операции с переменными
Имея переменные, вы можете комбинировать и сравнивать их.
Присваивание — сохранение значения:
<?php
$name = "John Doe";Арифметика — сложение, вычитание, умножение и т.д.:
<?php
$a = 8;
$b = 3;
$sum = $a + $b;
echo $sum; // 11Сравнение — проверка отношения между значениями; результат — boolean:
<?php
$a = 5;
$b = 5;
$is_equal = ($a == $b);
var_dump($is_equal); // bool(true)Конкатенация — объединение строк с помощью оператора точки (.):
<?php
$first_name = "John";
$last_name = "Doe";
$full_name = $first_name . " " . $last_name;
echo $full_name; // John DoeПолный список операторов смотрите в разделе Операторы PHP.
Область видимости переменных
То, где объявлена переменная, определяет, где она доступна. Переменная, созданная в основном теле скрипта, не доступна автоматически внутри функции, и наоборот:
<?php
$message = "outside";
function show() {
echo $message; // Notice: undefined variable — scope does not reach in
}
show();Чтобы использовать внешнюю переменную внутри функции, передайте её как аргумент или импортируйте с помощью ключевого слова global. Область видимости — частый источник ошибок для новичков, поэтому рекомендуем прочитать отдельную главу об области видимости переменных PHP.
Константы и переменные
Когда значение не должно меняться, используйте константу вместо переменной. Константы не имеют префикса $ и определяются с помощью define() или ключевого слова const. Подробнее читайте в разделе Константы PHP.
Заключение
Переменные PHP — это строительные блоки любого скрипта: они хранят и обрабатывают данные, с которыми работает программа. Ключевые выводы: переменные начинаются с $, имена чувствительны к регистру и не могут начинаться с цифры, а PHP сам определяет тип из значения, поэтому одна переменная может хранить строки, числа, массивы, объекты или NULL в течение своего жизненного цикла. Далее изучите Типы данных PHP и Операторы PHP, чтобы применить переменные на практике.