W3docs

Введение в переменные 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;
  • Booleantrue или 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 float

PHP также автоматически преобразует типы во многих выражениях (это называется приведением типов). Например, строка с числом воспринимается как число в арифметических операциях:

<?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, чтобы применить переменные на практике.

Практика

Практика
Какие из следующих утверждений о переменных PHP верны?
Какие из следующих утверждений о переменных PHP верны?
Was this page helpful?