Меню

PHP: Переменные

Когда в программе необходимо сохранить значение, чтобы использовать его позже, это значение присваивается переменной. Переменная — это просто символьное имя для значения, которое обеспечивает возможность получить значение по имени, то есть, когда в программе указывается имя переменной вместо неё подставляется значение.

При использовании переменных необходимо учитывать следующие правила:

  • В PHP не нужно объявлять переменную перед тем как начать её использовать.
  • Переменные в PHP представлены знаком доллара с последующим именем переменной.
  • Имена переменных чувствительны к регистру символов, это означает, что имена переменных $myVar, $MYVAR или $MyVar будут считаться, как имена трёх различных переменных.

Инициализация — это присвоение начального значения переменной. Присвоить какое-либо значение переменной можно с помощью оператора присваивания, который обозначается символом равно (=):


$str = 'строка1, ';
$Str = 'строка2';
echo $str, $Str;

Переменные в PHP не имеют типа, поэтому переменной может быть присвоено сначала значение одного типа, а затем этой же переменной может быть присвоено значение другого типа:


$x = 10;        // Сначала присваивается число
$x = "текст";   // Затем присваивается строка

Так как вместо имени переменной подставляется её значение, можно копировать значение из одной переменной в другую:


$num1 = 10;
$num2 = $num1;  // Тоже самое, что и $num2 = 10;

В этом примере переменной $num1 присваивается число 10. Затем переменной $num2 присваивается значение переменной $num1. Несмотря на то, что переменные $num1 и $num2 имеют одинаковое значение, каждая из них содержит собственную копию числа 10, поэтому изменение значения одной из них не повлияет на другую:


<?php
$num1 = 10;
$num2 = $num1;

echo '$num1: '. $num1;           // 10
echo '<br>$num2: ' . $num2;      // 10

$num1 = 20;

echo '<br>$num1: ' . $num1;      // 20
echo '<br>$num2: ' . $num2;      // 10
?>

Неинициализированная переменная, то есть такая, которой не было присвоено никакого значения, принимает значение по умолчанию в зависимости от контекста её использования:

  • При работе со строками — пустую строку.
  • При работе с числами — число нуль.
  • Там, где ожидается булево значение — FALSE.
  • При работе с переменной в качестве массива — пустой массив.
  • При работе с переменной в качестве объекта — объект типа stdClass.
  • Без контекста использования — специальное значение NULL.

// При работе со строками
$str = $str . 'abc';    // Тоже самое, что и  '' . 'abc'

// При работе с числами
$num = $num + 25;       // Тоже самое, что и 0 + 25

// Там, где ожидается булево значение
$num = $bool ? 1 : 2;   // Тоже самое, что и FALSE ? 1 : 2;

// При работе с переменной в качестве массива
$arr[3] = "abc";        // Тоже самое, что и $arr = [3 => "abc"];

// При работе с переменной в качестве объекта
$obj->foo = 'abc';      // new stdClass; $obj->foo = 'abc';

// Без контекста использования
echo gettype($x);       // NULL

Зачем нужны переменные?

Переменные помогают сделать программный код понятнее. Рассмотрим небольшой пример:


$total_price = 2.42 + 4.33; // Общая цена

Имеющиеся здесь числа могут означать что угодно. Чтобы стало понятнее, что здесь суммируется, можно присвоить 2.42 в качестве значения переменной $candy_price (цена конфет), а 4.33 — в качестве значения переменной $oil_price (цена масла):


$total_price = $candy_price + $oil_price;

Теперь вместо того, чтобы вспоминать, что эти значения означают, можно увидеть, что в сценарии складывается цена конфет с ценой масла.

Переменные также помогают экономить время при написании и отладке сценария. Вместо того, чтобы везде использовать одно и тоже фактическое значение (литерал), его можно присвоить в начале сценария переменной, и далее в остальном коде сценария вместо литерала использовать переменную. Если позднее будет принято решение об изменении значения, то вносить изменения в код придется не в нескольких местах, а только в одном месте — там, где переменной присваивалось значение.

Переменные переменных

В PHP есть возможность использовать значение одной переменной в качестве имени другой переменной. Переменные, которые в качестве имени используют значение переменной называются переменные переменных.

Чтобы использовать значение переменной в качестве имени переменной, необходимо поставить дополнительный знак доллара перед именем переменной, значение которой будет использоваться в качестве имени:


<?php
$x = "name";
$$x = "Вася";  // Вместо $x подставляется name и создаётся новая переменная $name
echo $name;    // "Вася"
?>