PHP/Переменные

Материал из Викиверситета
< PHP

Обрабатывать различные данные в PHP можно благодаря переменным. Переменная - это своего рода контейнер c данными, содержащий определенное значение.

Объявление переменной[править]

Для определения переменных в PHP применяется знак доллара $. Для объявления переменной необходимо просто использовать её в любом месте кода. Например:

<?php
$name; //Объявление переменной $name
?>

При объявлении переменной возможно сразу инициализировать ее:

<?php
$name = "Петр"; //Объявление с инициализацией переменной $name 
?>

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

Предостережения[править]

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

Требования к имени[править]

Имена переменных должны начинаться с алфавитного символа или с подчеркивания.

Имена переменных могут содержать только символы: a–z, A–Z, 0–9, и знак подчеркивания _.

Имена переменных не должны включать в себя пробелы.

Имена переменных чувствительны к регистру, т.е. $name и $Name - две различные переменные.

Математические операции[править]

Как следует из названия переменных, их значения можно изменять. Мы можем как напрямую менять их значение на какое-то конкретное число, например:

<?php
$value = 3; // Создали переменную $value и инициализировали ее значением 3
$value = 10; // Изменили значение переменной $value на значение 10
?>

так и приравнять переменную к какой-либо другой переменной:

<?php
$value1 = 3; // Создали переменную $value1 и инициализировали ее значением 3
$value2 = 9; // Создали переменную $value2 и инициализировали ее значением 9
$value1 = $value2; // Значение переменной $value1 будет равно значению переменной $value2, то есть 9
?>

Между переменными и числами в PHP (как и в любом другом языке программирования) возможно совершать различные математические операции, такие как сложение, вычитание, умножение, деление, деление по модулю, возведение в степень. Разберем подробнее на примерах ниже.

Сложение[править]

Сложение переменных в PHP осуществляется с помощью оператора +.

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$c = $a + $b; // Создаем переменную $c и приравниваем ее значение сумме значений переменных $a и $b  =>  $c = 7
?>

Заметим, что доступна и краткая форма записи оператора сложения +=. Так, например, если вам нужно увеличить значение переменной $a на значение переменной $b (то есть сложить значение двух переменных и записать результат в переменную $a), то можно использовать следующий скрипт

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$a += $b; // Эквивалентно $a = $a + $b, значение переменной $a = 7
?>

Аналогично мы бы написали, если бы нам требовалось увеличить значение переменной $a на конкретное число

<?php
$a = 3; // Инициализируем $a значением 3
$a += 2; // Эквивалентно $a = $a + 2, значение переменной $a = 5
?>

Также отметим случай, когда нам нужно изменить значение переменной $a на единицу

<?php
$a = 3; // Инициализируем $a значением 3
$a++; // Эквивалентно $a = $a + 1, значение переменной $a = 4
?>

Вычитание[править]

Вычитание переменных в PHP осуществляется с помощью оператора -.

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$c = $a - $b; // Создаем переменную $c и приравниваем ее значение разности значений переменных $a и $b  =>  $c = -1
?>

Заметим, что доступна и краткая форма записи оператора вычитания -=. Так, например, если вам нужно уменьшить значение переменной $a на значение переменной $b (то есть вычесть из значения $a значение $b и записать результат в $a), то можно использовать следующий скрипт

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$a -= $b; // Эквивалентно $a = $a - $b, значение переменной $a = -1
?>

Аналогично мы бы написали, если бы нам требовалось уменьшить значение переменной $a на конкретное число

<?php
$a = 3; // Инициализируем $a значением 3
$a -= 2; // Эквивалентно $a = $a - 2, значение переменной $a = 1
?>

Также отметим случай, когда нам нужно изменить значение переменной $a на единицу

<?php
$a = 3; // Инициализируем $a значением 3
$a--; // Эквивалентно $a = $a - 1, значение переменной $a = 2
?>

Умножение[править]

Умножение переменных в PHP осуществляется с помощью оператора *.

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$c = $a * $b; // Создаем $c и приравниваем ее значение произведению значений $a и $b  =>  $c = 12
?>

Заметим, что доступна и краткая форма записи оператора умножения *=. Так, например, если вам нужно перемножить значения переменных $a и $b и записать результат в $a, то можно использовать следующий скрипт

<?php
$a = 3; // Инициализируем $a значением 3
$b = 4; // Инициализируем $b значением 4
$a *= $b; // Эквивалентно $a = $a * $b, значение переменной $a = 12
?>

Аналогично мы бы написали, если бы нам требовалось умножить значение переменной $a на конкретное число

<?php
$a = 3; // Инициализируем $a значением 3
$a *= 2; // Эквивалентно $a = $a * 2, значение переменной $a = 6
?>

Деление[править]

Деление переменных в PHP осуществляется с помощью оператора /.

<?php
$a = 6; // Инициализируем $a значением 6
$b = 3; // Инициализируем $b значением 3
$c = $a / $b; // Создаем $c и приравниваем ее значение частному значений $a и $b  =>  $c = 2
?>

Заметим, что доступна и краткая форма записи оператора умножения /=. Так, например, если вам нужно разделить значение переменной $a на значение $b и записать результат в $a, то можно использовать следующий скрипт

<?php
$a = 6; // Инициализируем $a значением 6
$b = 3; // Инициализируем $b значением 3
$a /= $b; // Эквивалентно $a = $a / $b, значение переменной $a = 2
?>

Аналогично мы бы написали, если бы нам требовалось разделить значение переменной $a на конкретное число

<?php
$a = 6; // Инициализируем $a значением 6
$a /= 2; // Эквивалентно $a = $a / 2, значение переменной $a = 3
?>

Деление по модулю[править]

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

<?php
$a = 7; // Инициализируем $a значением 7
$b = -3; // Инициализируем $b значением -3
$c = $a % $b; // Создаем $c, значение которой равно результату операции $a % $b = 1
?>

Заметим, что доступна и краткая форма записи оператора умножения %=. Так, например, если вам нужно получить остаток от деления $a на $b и записать результат в $a, то можно использовать следующий скрипт

<?php
$a = -7; // Инициализируем $a значением -7
$b = -3; // Инициализируем $b значением -3
$a %= $b; // Эквивалентно $a = $a % $b, значение переменной $a = -1
?>

Аналогично мы бы написали, если бы нам требовалось получить остаток от деления значения переменной $a на конкретное число

<?php
$a = 8; // Инициализируем $a значением 8
$a %= 5; // Эквивалентно $a = $a % 5, значение переменной $a = 3
?>

Возведение в степень[править]

Возведение в степень переменных в PHP осуществляется с помощью оператора **.

<?php
$a = 5; // Инициализируем $a значением 5
$b = 2; // Инициализируем $b значением 2
$c = $a ** $b; // Создаем $c, значение которой равно результату операции $a ** $b = 25
?>

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

Однако если бы нам требовалось возвести значение переменной $a в степень, равную конкретному числу, то мы бы использовали следующий скрипт

<?php
$a = 8; // Инициализируем $a значением 8
$a = $a ** 2; // Значение переменной $a = 64
?>

Вывод переменных[править]

До сих пор мы только вычисляли переменные, но никак не могли вывести их на страницу браузера. Сейчас мы научимся это делать.

Для вывода переменных используется уже знакомая нам команда echo, но при этом имя переменной в кавычки не берётся.

<?php
$a = 3;
$b = 4;
$c = $a + $b;
echo $c;
?>

Если вы всё правильно написали, то, открыв страницу с расширением *.php (не забывайте, интерпретатор будет работать только с такими файлами) в браузере, вы увидите на экране число 7.

Также функция echo позволяет обойтись без использования переменной $c и переписать приведенный скрипт в другом виде

<?php
$a = 3;
$b = 4;
echo $a + $b;
?>

Вывод переменных вместе с текстом[править]

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

<?php
$a = 3;
$b = 4;
$c = $a + $b;
echo "При сложении чисел ";
echo $a;
echo " и ";
echo $b;
echo " получается число ";
echo $c;
echo ".";
?>

В результате выполнения такого кода на экране в браузере отобразиться сообщение "При сложении чисел 3 и 4 получается число 7.". Запустите программу, чтобы проверить.

Такой код отвечает поставленной задаче и выводит на экран желаемую фразу, однако является слишком громоздким и сложным для прочтения.

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

<?php
$a = 3;
$b = 4;
$c = $a + $b;
echo "При сложении чисел $a и $b получается число $c.";
?>

Приведённый выше код гораздо компактнее и приятнее для прочтения, хотя результат работы будет идентичен с предыдущим.

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

<?php
$a = 3;
$b = 4;
$c = $a + $b;
echo "При сложении чисел " . $a . " и " . $b . " получается число " . $c . ".";
?>

Приведенный код также является компактным и приятным к прочтению. Результат работы идентичен предыдущему.

Стандартные типы данных[править]

Функция var_dump[править]

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

Пример использования:

<?php
$a = 3.1;
$b = true;
var_dump($a, $b);
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

float(3.1)
bool(true)

В данном примере тип переменной $a - bool, тип переменной $b - float. Разберем существующие типы данных ниже.

bool[править]

bool (англ. bool) - логический тип данных. Переменные этого типа могут принимать два значения: true (истина) или false (ложь).

Пример:

<?php
$a = true; //Инициализировали переменную $a = true, логический тип данных
$b = false; //Инициализировали переменную $b = false, логический тип данных
var_dump($a, $b); //Выводим информацию о переменных $a и $b
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

bool(true)
bool(false)

int[править]

int (англ. integer) - целочисленный тип данных. Служит для представления как отрицательных, так и положительных целых чисел.

Пример:

<?php
$a = 6; //Инициализировали переменную $a = 6, целочисленное положительное число
$b = -6; //Инициализировали переменную $b = -6, целочисленное отрицательное число
var_dump($a, $b); //Выводим информацию о переменных $a и $b
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

int(6)
int(-6)

float[править]

Тип float (англ. float) служит для представления чисел с плавающей точкой.

Пример:

<?php
$a = 6.0; //Инициализировали переменную $a = 6.0, число с плавающей точкой
$b = 6.3; //Инициализировали переменную $a = 6.3, число с плавающей точкой
var_dump($a, $b); //Выводим информацию о переменной $a и $b 
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

float(6)
float(6.3)

string[править]

string - строковый тип данных. Необходим для работы со строками.

Пример:

<?php
$a = "Hello!"; //Инициализировали переменную $a = "Hello!", строковый тип
$b = 'Hi!'; //Инициализировали переменную $a = 'Hi!', строковый тип
var_dump($a, $b); //Выводим информацию о переменных $a и $b
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

string(6)"Hello!"
string(3)"Hi!"

В PHP строковые переменные могут быть заключены в двойные или одинарные кавычки. От типа кавычек зависит как строка будет обработана интерпретатором. Текст, заключенный в одинарные кавычки, выводится на экран без изменений. Если текст заключен в двойные кавычки, возможна подстановка значений. Посмотрим на примере (вспомните функцию echo из раздела Введение):

<?php
$a = "Hello!"; //Инициализировали переменную $a = "Hello!", целочисленное положительное число
echo "Вывод строки в двойных кавычках : $a\n"; //Выводим строку на экран
echo 'Вывод строки в одинарных кавычках : $a\n'; //Выводим строку на экран
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

Вывод строки в двойных кавычках : Hello!
Вывод строки в одинарных кавычках : $a\n

array[править]

Одномерный массив из 10 элементов. Нумерация элементов начинается с 0.

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

Пример инициализации массива:

<?php
$person = array(
    "name" => "Ivan",
    "surname" => "Ivanov",
);
?>

Существует краткая форма записи:

<?php
$person = [
    "name" => "Ivan",
    "surname" => "Ivanov",
];
?>

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

Пример использования функции var_dump для вывода информации о массиве:

<?php
$person = array(
    "name" => "Ivan",
    "surname" => "Ivanov",
);
var_dump($person);
?>

После выполнения данного скрипта пользователь увидит на экране следующий результат:

array(2) {
 ["name"]=>
 string(4) "Ivan"
 ["surname"]=>
 string(6) "Ivanov"
}

Динамическая типизация[править]

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

Пример:

<?php
$a = 10; //Инициализировали переменную $a = 10, целочисленный тип
var_dump($a); //Выводим информацию о переменной $a

$a = "Hello!"; //Изменили значение переменной $a = "Hello!", строковый тип
var_dump($a); //Выводим информацию о переменной $a

$a = 13.8; //Изменили значение переменной $a = 13.8, число с плавающей точкой
var_dump($a); //Выводим информацию о переменной $a

$a = true; //Изменили значение переменной $a = true, логический тип
var_dump($a); //Выводим информацию о переменной $a
?>

Результат работы программы:

int(10)
string(6) "Hello!"
float(13.8)
bool(true)

В других языках программирования подобный код может вызвать ошибку.

Упражнения[править]

1 Данная переменная инициализирована.

<?php
$name; 
?>

Верно.
Неверно.

2 Выберите варианты имен переменных, удовлетворяющих требованиям.

$name
$Name
$student name
$Имя
$name_
$1name

3 Данный код приведет к ошибке

<?php
$value1 = 3; 
$value1 = $value2; 
?>

Верно.
Неверно.

4 Что будет отображено на экране после выполнения данного скрипта?

<?php
$a = 3;
$b = 4; 
$c = 3; 
$d = $a + $b + $c;
echo $d
?>

10
12
0
ошибка

5 Что будет отображено на экране после выполнения данного скрипта?

<?php
$a = 3;
$b = 4; 
$c = 3; 
echo ($a * $b) / ($a + $c);
?>

2
1
3
12

6 Что будет отображено на экране после выполнения данного скрипта?

<?php
$a = 3;
$b = 7; 
echo ($a - $b) % $a;
?>

1
-1
0
ошибка

7 Что будет отображено на экране после выполнения данного скрипта?

<?php
$a = 3; 
echo $a ** 0;
?>

3
0
1
ошибка

8 Данный код вызовет ошибку

<?php
$a = 10;
$a = "Hello!";
var_dump($a); 
?>

Верно.
Неверно.


Ссылки[править]