Переменные в PHP

Александр Кичатов

Что такое переменная

Переменная - это временное хранилище, контейнер, в котором можно хранить какое-либо значение.

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

<?php
	$mail = 'test@test.ru';
?>
<body>
	<p>Для связи с нами используйте следующий адрес: <?= $mail ?></p>
</body>

При запуске этого кода в конец тега <p> будет подставлено содержимое переменной $mail.

Создание переменной

Положить значение в переменную можно так:

<?php
    $name = 'Иван';
    $age = 20;

В коде выше мы создали переменную $name и положили в неё значение Иван, затем создали переменную $age и присвоили ей значение 20.

Название "переменная" означает, что её значение может меняться во время выполнения скрипта:

<?php
    $name = 'Вася'; // Записали значение в переменную
    $name = 'Петя'; // Перезаписали значение

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

Тем не менее, веб-разработчики часто говорят "объявить переменную" вместо "создать переменную".

<?php
    // Я создаю переменную $name
    // Я объявляю переменную $name
    $name = 'Вася';

Также вместо "положить в переменную значение" часто говорят "присвоить значение".

Причина - символ =, который называется "оператором присваивания". Отсюда и термин "присвоить".

<?php
    // Я сохраняю в переменную $age значение 20
    // Я присваиваю переменной $age значение 20
    $age = 20;

Правила именования переменных

  • Название переменной начинается с символа $.
  • Вторым символом может быть буква или символ подчёркивания _
  • Дальше могут идти буквы, символы подчёркивания _ и цифры.
<?php
    $_name // правильно
    $15 // неправильно
    $_15 // правильно
    $name_15 // правильно
    $name-15 // неправильно

Названия переменных регистрозависимы. $name и $Name - это разные переменные.

Вывод переменной

Вывести переменную можно с помощью команды echo:

<?php
    $name = 'Иван';
    echo $name;

При этом команда echo позволяет вывести на экран сразу несколько значений:

<?php
    $name = 'Иван';
    echo 'Моё имя: ', $name;

В примере выше мы передали в echo 2 значения, разделив их запятой.

Так мы можем передать сколько угодно значений:

<?php
	$years = '15 лет';
	$company = 'ООО Моя оборона';

	echo 'Наша компания ', $company, ' уже ', $years, ' на рынке шпингалетов.';

Проверка значения переменной

Команда echo не всегда удобна для проверки значения переменной.

К примеру, при попытке вывода пустой строки на экран не выведется абсолютно ничего. И непонятно, действительно ли она выводится или нет (например из-за ошибки в коде).

Поэтому для проверки содержимого переменной лучше использовать функцию var_dump():

<?php
    var_dump('Vasya'); // string(5) "Vasya"
    var_dump(''); // string(0) ""
?>

Как видно из примера выше, функция var_dump() выводит содержимое переменной, её длину и тип.

Типы данных мы подробно рассмотрим в отдельном уроке.

Удаление переменной

Удалить существующую переменную можно с помощью функции unset():

<?php
    $var = 5;
    unset($var);
    echo $var; // Ошибка: Undefined variable: var

А теперь пришло время немного попрактиковаться.

Задача №1

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

1. Создайте переменные с названиями title и content. Присвойте им какие-нибудь значения.
2. Выведите значение переменной title внутри тега h1, а значение переменной content внутри тега div.

<?php
    $title = 'Заголовок статьи';
    $content = 'Содержимое статьи';

    echo '<h1>', $title, '</h1>';
    echo '<div>', $content, '</div>';
?>

Хочу ещё раз обратить ваше внимание, что это решение не является единственно верным. К примеру, следующий код приведёт к такому же результату:

<?php
    $title = 'Заголовок статьи';
    $content = 'Содержимое статьи';
?>

<h1><?= $title; ?></h1>
<div><?= $content; ?></div>

Задача №2

1. Создайте переменную title и присвойте ей какое-нибудь значение.
2. Выведите значение переменной на экран внутри тега h1.
3. Измените значение переменной на какое-нибудь другое.
4. Снова выведите переменную на экран, теперь уже внутри тега div.
5. Удалите переменную title.

<?php
	$title = 'Значение 1';
	echo '<h1>', $title, '</h1>';

	$title = 'Значение 2';
	echo '<div>', $title, '</div>';

	unset($title);

Комментарии