- Создаем переменную
- Использование переменной
- Изменение переменной
- Ошибки при работе с переменными
- Константы
- Heredoc
- Выводы
В этом уроке мы познакомимся с переменными и научимся работать с ними. Мы узнаем, зачем они нужны, как их создавать, использовать и менять. Еще разберемся, как работать с константами, и что такое heredoc-синтаксис.
Создаем переменную
Допустим, нам нужно напечатать на экран слово «Father!» два раза или даже пять раз. Эту задачу можно решить так:
<?php
print_r('Father!');
print_r('Father!');
В простом случае так и стоит поступить, но если слово «Father!» начнет использоваться чаще и в разных частях программы, то придется его везде повторять. Если нам понадобится изменить слово, то придется найти все места, где оно использовалось и выполнить необходимую замену. А можно поступить по-другому. Вместо копирования выражения достаточно создать переменную с этой фразой:
<?php
// greeting - переводится как приветствие
$greeting = 'Father!';
print_r($greeting);
print_r("\n");
print_r($greeting);
// => Father!
// => Father!
В строчке $greeting = 'Father!'
значение 'Father!'
присваивается переменной с именем $greeting
. В PHP имена переменных начинаются со знака $. В итоге переменная указывает на данные, которые были в нее записаны.
Когда переменная создана, можно начать ее использовать.
Использование переменной
Переменная подставляется в те места, где раньше стояло наше слово. Во время выполнения интерпретатор доходит до строчки print_r($greeting);
и подставляет вместо переменной ее содержимое, а затем выполняет код.
Для имени переменной используется любой набор допустимых символов, к которым относятся буквы английского алфавита, цифры, знак _
. При этом цифру нельзя ставить в начале. Имена переменных регистрозависимы, то есть имя hello
и имя heLLo
— это два разных имени, значит, это две переменные. Регистр в PHP имеет важное значение, не стоит забывать про него.
Количество создаваемых переменных не ограничено, большие программы содержат десятки и сотни тысяч имен переменных. Для удобства анализа программы переменные принято создавать как можно ближе к тому месту, где они используются.
Изменение переменной
Со временем внутри программы значения переменных могут изменяться:
<?php
// greeting - переводится как приветствие
$greeting = 'Father!';
print_r($greeting); // => Father!
$greeting = 'Mother!';
print_r($greeting); // => Mother!
Имя осталось тем же, но внутри другие данные. Переменные в PHP не требуют специального объявления. Вместо этого переменная объявляется при первом ее использовании в программе.
Никогда нельзя быть точно уверенным, что записано внутри переменной. Чтобы быть спокойным, нужно проанализировать код, который находится перед переменной. Этим занимаются разработчики во время отладки, когда пытаются разобраться, почему программа не работает или работает не так, как задумано.
Переменные меняются нечасто. Обычно их используют, чтобы хранить данные.
Ошибки при работе с переменными
Переменную нужно объявить до ее использования. Если сделать это позже, то программа не заработает:
<?php
print_r($greeting);
$greeting = 'Father!';
// PHP Notice: Undefined variable: greeting in /private/var/tmp/index.php on line 3
Запуск программы выше завершается с ошибкой PHP Notice
_ — это ошибка обращения. Она означает, что в коде используется имя (идентификатор), которое не определено. При этом в самой ошибке указан идентификатор переменой: greeting
.
Также к ошибке могут привести опечатки при использовании переменной и во время ее объявления. Количество подобных ошибок уменьшается за счет использования правильно настроенного редактора. Такой редактор подсвечивает имена, которые используются без объявления, и предупреждает о возможных проблемах.
Константы
Разработчики часто работают с данными, которые никогда не меняются. Например, число π, которое всегда равно 3.14
и не может измениться.
Для обращения к подобным данным в PHP принято использовать константы:
<?php
const PI = 3.14;
print_r(PI); // => 3.14
Создание константы отличается от создания переменной. Оно начинается с ключевого слова const
и последующего имени константы. При этом знак доллара не нужен. Далее ей присваивается нужное значение.
Константы принято именовать буквами в верхнем регистре с _
в качестве разделителя. Константа тоже может использоваться в любом выражении. Единственное ограничение — константу нельзя изменить.
В PHP много встроенных констант, которые можно использовать в любом месте программы. Вот некоторые из них:
PHP_VERSION
— текущая версия PHPPHP_MAXPATHLEN
— максимальная разрешенная длина имени файлаPHP_INT_MAX
— максимальное возможное значение целых чисел (integer)
Кроме обычных констант в PHP существует отдельная группа — магические константы. Их отличия заключаются в следующем:
- Магические константы невозможно определить самому, можно пользоваться только существующими
- Магические константы начинаются и заканчиваются символами
__
(два подчеркивания) - Магия заключается в том, что такие константы имеют одно и то же значение только в пределах определенной части программы
Последний пункт говорит о том, что существуют не очень постоянные константы, но их изменения регламентированы и на практике не вызывают проблем. К подобным константам относятся:
__LINE__
— содержит текущую строку файла, в котором она используется__FILE__
— путь до текущего файла__DIR__
— путь до директории, в которой находится текущий файл
Heredoc
Определять строки в PHP можно с помощью специального heredoc-синтаксиса. После оператора <<<
необходимо указать идентификатор с произвольным именем, затем перевод строки и саму строку. В конце добавляется тот же идентификатор, который закрывает вставку. Такой способ удобен для задания длинных строк, внутри которых встречаются и переводы строк, и разнотипные кавычки:
<?php
$str = <<<EOT
Пример строки,
охватывающей несколько строк,
с использованием heredoc-синтаксиса.
Здесь не нужно экранировать ни одинарные ', ни двойные " кавычки.
EOT;
print_r($str);
// => Пример строки,
// => охватывающей несколько строк,
// => с использованием heredoc-синтаксиса.
// => Здесь не нужно экранировать ни одинарные ', ни двойные " кавычки.
Перед закрывающим идентификатором, в нашем случае — EOT
, должен быть такой же отступ, как перед объявлением переменной, иначе PHP начнет ругаться на ошибку синтаксиса. В данном примере отступа нет, закрывающий идентификатор находится на одном уровне с началом блока.
Выводы
В этом уроке мы познакомились с переменными и научились работать с ними. Мы узнали, зачем они нужны, как их создавать, использовать и менять. Еще разобрались, как работать с константами. Это значения, которые никогда не меняются. При этом существуют не очень постоянные константы, но их изменения регламентированы и на практике не вызывают проблем.
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты