Найти в Дзене
Блог Web-Dev

Что такое переменные PHP? Как создать и выводить переменную PHP? Область видимости переменных PHP?

Одним из основных и распространенных объектов в PHP является переменная. Переменные PHP - это своего рода контейнеры предназначенные для хранения разного типа информации. И в нем можно хранить цифры, тексты, массивы и прочие данные. С их помощью можно создавать, изменять или просто хранить информацию и когда нужно использовать ее. Как создать переменную в PHP Перед ее созданием необходимо усвоить вот что: название переменной должно начинаться со знака доллара ($), затем обязательно не меньше одной английской буквы или нижнее подчеркивание. Далее можно прописать необязательные символы: цифры или знак нижнего подчеркивания (только не в конце). Правильные названия переменных: Неправильные названия переменных: Пробелы, тире и другие символы запрещены. Чтобы вложить значение в переменную PHP необходимо использовать оператор присвоения «=». И в следующем примере мы вложили значения «Денис»,«Мужской» и «32» в контейнеры «$robotnik», «$gender» и «$age» и вывели их через оператор «echo»: <?php
Оглавление

Одним из основных и распространенных объектов в PHP является переменная. Переменные PHP - это своего рода контейнеры предназначенные для хранения разного типа информации. И в нем можно хранить цифры, тексты, массивы и прочие данные. С их помощью можно создавать, изменять или просто хранить информацию и когда нужно использовать ее.

Как создать переменную в PHP

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

Правильные названия переменных:

  • $perem;
  • $perem_367;
  • $perem_count;
  • $peremCount;
  • $_perem.

Неправильные названия переменных:

  • $367 или $367perem - не должно начинаться с цифры;
  • $perem count или $-perem - можно применять только буквы, цифры и нижнее подчеркивание.

Пробелы, тире и другие символы запрещены.

Чтобы вложить значение в переменную PHP необходимо использовать оператор присвоения «=». И в следующем примере мы вложили значения «Денис»,«Мужской» и «32» в контейнеры «$robotnik», «$gender» и «$age» и вывели их через оператор «echo»:

<?php
$robotnik = "Денис";
$gender = 'Мужской';
$age = 32;
echo "Имя -".$robotnik.", пол -".$gender.", возраст -".$age;
?>

Как мы видим в верхнем примере, мы создали три переменные и присвоили каждому из них свое значение. Первым двум строковые значения с двойными или одинарными кавычками, а последнему было вложено цифровое значение (цифровые прописываются без кавычек).

В ходе работы с переменными их значения могут изменятся в зависимости от условий. И в нижеуказанном примере мы изменили значения двум переменным:

<?php
$robotnik="Кирилл";
$gender = 'Мужской';
$age=25;
echo "Имя-".$robotnik.", пол-".$gender.", возраст-".$age;
?>

Имена контейнеров чувствительны к регистру, а это означает что переменные $robotnik, или $Robotnik, или $ROBOTNIK не одно и тоже.

<?php
$ROBOTNIK = "Федор";
$Robotnik = "Михаил";
echo "$ROBOTNIK, $Robotnik"; // выводит Федор, Михаил
?>

Кстати контейнеры (переменные) можно прописать внутри строк.

Как выводить переменную PHP

Для выведения значения переменных или других данных используются команды операторы PHP — «print», «echo»:

<?php
//Задать значения
$width_1="200px";
$width_2="200px";
$height_1="100px";
$height_2="100px";
$color_1 = "blue";
$color_2 = "red";
$color_text="white";
//Внизу выводим значения
?>
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
</head>
<body>
<div style="width:<?php echo $width_1;?>;height:<?php echo $height_1;?>;background-color:<?php echo $color_1;?>;color:<?php echo $color_text;?>;">Это синий div</div>
<div style="width:<?php echo $width_2;?>;height:<?php echo $height_2;?>;background-color:<?php echo $color_2;?>;color:<?php echo $color_text;?>;">Это красный div</div>
</body>
</html>

Как видим из примера, здесь мы создали семь переменных и вложили в них значения. А потом при загрузке страницы через код «<?php ?>» и оператор «echo» все эти вложенные данные отобразились на странице.

Область видимости переменных PHP

Переменные могут быть объявлены в любом месте скрипта. И у нее есть область применения - это та часть скрипта,где на переменную можно ссылаться/использовать.

Есть три области видимости переменных:

  • локальная;
  • глобальная;
  • статическая.

Локальная видимость

Переменная PHP объявленная внутри функции имеет локальную область видимости и может быть доступна только в рамках этой функции:

<?php
function myExample_2() {
$local_perem = "Зеленый";// Локальная видимость
echo "<p>Цвет рубашки: $local_perem</p>";
}
myExample_2();
echo "<p>Цвет рубашки: $local_perem</p>";// Здесь вместо $local_perem отобразится пустота
?>

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

Глобальная видимость

Если переменная объявлена за пределами функции, то она имеет глобальную область видимости и может быть доступна только вне функции:

<?php
$global_perem = "Зеленый"; //глобальная область видимости
function myExample() {
echo "<p>Цвет рубашки: $global_perem</p>";
}
myExample();
echo "<p>Цвет рубашки: $global_perem</p>";
?>

В данном примере вызов функции вывел текст «Цвет рубашки:», а данные переменной ничего не вывело. Это произошло потому что «$global_perem» внутри функции считается как локальная переменная и она видит только то, что внутри функции.

Ключевое слово global

Global-ключевое слово используется для доступа к глобальной переменной из функции.

В следующем примере показано использование ключевого слова global:

<?php
$num_1 = 7;
$num_2 = 3;
function myExample_3() {
global $num, $num_1, $num_2;
$num = $num_1 + $num_2;
}
myExample_3();
echo $num; // Выводит 10;
?>

Переменная $GLOBALS

PHP также хранит все глобальные переменные в ассоциативном массиве, называемом $GLOBALS[name_variable]. Name_variable содержит имя переменной. Данный массив доступен и внутри функции, благодаря этому его можно использовать для непосредственного обновления глобальных переменных.

Наш предыдущий пример можно переписать следующим образом:

<?php
$num_1 = 7;
$num_2 = 3;
function myExample_4() {
$GLOBALS['num'] = $GLOBALS['num_1'] + $GLOBALS['num_2'];
}
myExample_4();
echo $num; // Выводит 10;
?>

Статическая видимость

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

Для этого можно воспользоваться ключевым словом «static»:

<?php
function myExample_5() {
static $num = 0;
echo $num;
$num++;
}
myExample_5();// Выводит 0;
myExample_5();// Выводит 1;
myExample_5();// Выводит 2;
?>

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

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

Для проверки значений переменных лучше всего использовать функцию PHP — «var_dump». Так как с «echo» не всегда можно понять действительно ли контейнер пустой или в коде есть ошибка.

В нижеприведенном примере функция «var_dump()» вывело тип, длину и значение нашего контейнера.

<?php
$str_1="Check value";
var_dump($str_1); //Выводит string(11) "Check value"
?>

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

Для удаления существующей переменной можно воспользоваться функцией «unset»:

<?php
$perem_text = "наш текст";
unset($perem_text);
echo $perem_text; //ничего не выводит, т.к. $perem_text удален!
?>

При удалении переменной внутри функции следует учесть область видимости. Для решения этой проблемы можно использовать массив «$GLOBALS»:

<?php
$perem_text = "наш текст";
myExample_6();
function myExample_6() {
unset($GLOBALS['perem_text']);
}
echo $perem_text;
?>

Этот пример ничего не выводит, т.к. переменная «$perem_text» была удалена внутри функции с помощью глобальной переменной «$GLOBALS».

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