Что такое переменная
Переменная - это временное хранилище, контейнер, в котором можно хранить какое-либо значение.
Например, если у нас есть 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);