Одним из основных и распространенных объектов в 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».
Здесь я завершаю данный урок, если возникли вопросы по этому уроку, то задавайте их в комментариях.