Вы находитесь на странице: 1из 5

Лекции курса PHP7 + MySQL с нуля

(краткое содержание)

ЛЕКЦИЯ 5. ПЕРЕМЕННЫЕ. ОСОБЕННОСТИ ОБЪЯВЛЕНИЯ. ТИПЫ


ПЕРЕМЕННЫХ. ДЕЙСТВИЯ С ПЕРЕМЕННЫМИ

Переменные.
Как и в большинстве других языков программирования, в PHP существует
понятие переменной – именованной выделенной области памяти, содержащей
заданный тип и значение.
В PHP переменные используются часто и много, потому не принято
ограничивать себя в их объявлении. Порой, казалось бы, проще обойтись двумя-
тремя переменными вместо десяти. Но при этом код станет менее читабельным и
более сложным для восприятия другим разработчиком. Хотя излишнее количество
переменных также является минусом в разработке, в данном случае лучше найти
золотую середину с учетом принципа «лучше немного больше, чем меньше».

Объявление переменных. Особенности объявления.


В PHP переменные объявляются следующим образом – перед именем
переменной ставится знак доллара ($):
- $variable;
- $New_variable;
- $NEW_VARIABLE.
Важный момент – выше указаны три абсолютно разных переменных. Это
значит, что имена переменных чувствительны к регистру.
Стоит учитывать, что имя переменной может содержать символы,
включающие латинские буквы, цифры, нижнее подчеркивание и вообще любые
символы, код которых больше 127, в том числе и буквы русского алфавита. При
этом настоятельно не рекомендуется этого делать, так как в разных кодировках у
символов кириллицы используются разные коды, что приведет к различию в имени
переменной, кроме того, среди разработчиков использование буквенных символов,
отличных от английского алфавита считается признаком дурного тона.
Язык PHP относится к нестрого типизированным языкам, что означает
отсутствие необходимости указывать тип переменной при ее объявлении –
интерпретатор самостоятельно присваивает его при анализе сценария и может в
дальнейшем изменить, в случае, если это потребуется. При этом, возможности
языка позволяют заранее определить тип переменной, если того требует ситуация.
Типы переменных и способы их определения будут рассмотрены в следующем
уроке.

Типы переменных.
В PHP существуют следующие типы переменных:
- integer (целочисленный тип).
Только целые числа со знаком. Стоит отметить, что максимальный и
минимальный размер зависит от разрядности PHP:
- для 32-разрядной от –2 147 483 648 до 2 147 483 647;
- для 64-разрядной от –9 223 372 036 854 775 807 до
9 223 372 036 854 775 807.
- double (вещественный тип)
Числа с плавающей точкой. Формат имеет две формы записи: обычную и
экспоненциальную (с использованием степени числа 10):
- обычная форма – 4543.12355;
- экспоненциальная форма – 454312355e5 или 0.454312355e-4.

1
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

Допустимый диапазон вещественных чисел находится в пределах


±2.23е-308 до ±1.79e308.
При выходе за допустимый диапазон, вместо числа выводится
предопределенная константа INF (Infinity), обозначающая бесконечность.
Любые операции с INF снова возвращают INF.
Кроме того, в случае, когда результатом операции является
недопустимое число (как пример – операция извлечения квадратного
корня из -1), будет выведена предопределенная константа NAN (Not a
number). Аналогично ситуации с INF, операции с NAN приводят к
результату NAN.
- string (строковый тип)
Строка, содержащая различные символы практически любой длины – не
более 2 Гб. С учетом того, что в стандартных настройках сервера, PHP
скрипты ограничены в объемах потребляемой памяти (не более 128 Мб),
использование слишком больших строк не представляется возможным.
Правда, такие случаи очень редко встречаются на практике.
- array (тип ассоциативных массивов)
Тип массива, в котором каждый элемент представляет собой пару
ключ=>значение, где символ => обозначает связь ключа и значения. В
других языках программирования такие массивы часто называют словом
ХЭШ. При этом, в качестве ключа может выступать как целое число, так
и строка.
- object (ссылка на объект)
Ссылка на объект, который реализует принципы объектно-
ориентированного подхода в программировании. Общая структура типа
похожа на ассоциативный массив. Исключением является способ
обращения к отдельным свойствам и методам объекта. В настоящем
курсе данный тип не используется, но рассмотрен как один из основных
типов переменных. Принципы программирования в объектно-
ориентированном стиле заметно отличаются от процедурного и меняют
первоначальный синтаксис большого количества функций и операций.
Кроме того, перед тем, как изучать программирование на любом языке по
принципам ООП, стоит изучить основы данного подхода.
- resource (выбранный ресурс)
Некий ресурс, выбранный для дальнейшей обработки PHP-скриптом.
Данный тип также не входит в рамки настоящего курса и рассмотрен в
качестве одного из основных типов переменных.
- boolean (логический тип)
Переменная, принимающая такой тип, может содержать одно из двух
значений: true (правда) или false (ложь). С точки зрения PHP – любое
ненулевое число или непустая строка, а также ключевое слово true
символизирует истину, а число 0, пустая строка или слово false – ложь.
Интересный факт – операторы инкремента и декремента,
рассматриваемые далее в этом уроке, не работают с логическими
переменными.
- null (специальный тип)
Особый тип, содержащий константу null. Тип этой константы также не
относится ни к одному типу и называется null. В какой-то степени можно
считать, что тип null обозначает отсутствие каких-либо значений в

2
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

переменной, ведь даже значение 0 или пустая строка также являются


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

Действия с переменными.
С переменными можно осуществлять действия, которые зависят от их типа и
действия, которые доступны для всех типов переменных.
Для всех типов переменных доступны следующие основные действия:
- присвоение значения
Присвоение значения может принимать разные виды: присвоение
значения, присвоение значения другой переменной, присвоение ссылки
на переменную или константное выражение.
В случае, когда переменная впервые встречается в тексте скрипта,
происходит ее инициализация. Единственное исключение – объектный
тип переменной, инициализация которой происходит с использованием
ключевого слова new.
Варианты присвоения и инициализации переменных представлены в
листинге 10.1:
Листинг 5.1. Варианты присвоения и инициализации переменных

$new_variable; // Инициализация переменной


$first_var = 15; // Инициализация и присвоение целочисленной переменной
$second = $third; // Инициализация и присвоение переменных
$var1 = $var2 = “New string”; /* Инициализация и присвоение значений нескольким
переменным */

- проверка существования
В языке PHP, аналогично другим языкам, есть возможность проверки
существования (подразумевается факт инициализации) переменной.
Сделать это можно при помощи оператора isset(). Проверка
осуществляется по имени переменной и возвращает логический тип:
если существует – true, если нет – false.
В листинге 10.2. представлен пример использования оператора isset()
Листинг 5.2. Пример использования оператора isset()

if(isset($new_var)) {
echo “Переменная с именем new_var существует”;
} else {
echo “Переменной с именем new_var не существует”;
}

В листинге 10.2. используется конструкция условия if-else (если-иначе),


рассматриваемая далее в этом курсе и подразумевающая выполнение
вложенного скрипта при выполнении условия соответствия. Так, если
переменная $new_var существует и оператор isset() возвращает значение
true, будет выведено сообщение “Переменная с именем new_var

3
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

существует”, иначе, если она не была до этого инициализирована в


программе, оператор isset() возвращает false и выводится сообщение
“Переменной с именем new_var не существует”.
- уничтожение
В случаях, когда переменная более не требуется, ее можно уничтожить
при помощи оператора unset().
Листинг 5.3. Уничтожение переменной при помощи оператора unset()

$var = “Hello friends!!!”; /* инициализация переменной $var и присвоение ей значения


строки “Hello friends!!!”*/
echo $var; // вывод сообщения «Hello friends!!!»
unset($var); // Удаление переменной $var
echo $var // Предупреждение: нет такой переменной $var

Определение типа переменной.


В PHP существует ряд операторов, позволяющих определить тип переменной:
- is_int()
Возвращает true, если заданная переменная - целое число.
- is_double()
Возвращает true, если заданная переменная относится к вещественному
(действительному) типу.
- is_infinite()
Возвращает true, если переменная – бесконечное действительное число INF.
- is_nan()
Возвращает true, если переменная – недопустимое числовое значение NAN.
- is_string()
Возвращает true, если переменная содержит строковое значение.
- is_numeric()
Возвращает true, если переменная относится к типу integer или double. Данный
оператор рекомендуется к применению вместо is_int() и is_double().
- is_bool()
Возвращает true, если переменная – логическое значение true или false
- is_scalar()
Возвращает true, если переменная относится к таким типам, как integer, double,
boolean или string.
- is_null()
Возвращает true, если переменная принимает значение null.
- is_array()
Возвращает true, если переменная – ассоциативный массив
- is_object()
Возвращает true, если переменная содержит ссылку на объект
- gettype()
Возвращает значения integer, double, string, boolean, object, array, null, INF, NAN
или unknown type. Последнее значение может приниматься тогда, когда в PHP
используется расширение, добавляющее новый тип переменной, но не входящее в
стандартный набор расширений PHP.

4
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

Установка типа переменной


Кроме возможностей определения типа, в PHP существует ряд возможностей
установки и преобразования переменной к определенному типу:
- settype($var, $type)
Устанавливает для переменной $var тип $type. В случае, если этого не
удалось (например, если $type – целочисленный тип integer, а
переменная $var содержит строку, не имеющую в составе чисел), то
возвращает false.
- doubleval($var)
Преобразует переменную к вещественному типу. Есть эквивалентная
функция floatval().
- strval($val)
Преобразует переменную в строковый тип
- intval($val[, $base])
Преобразует переменную в целочисленный тип. В случае указания
параметра $base, переводит в соответствующий формат.
Пример:
echo intval(“56”); // Выведет сообщение: 56
echo intval(“56”, 2) // Выведет сообщение: 111000
Кроме того, допускается использование синтаксиса, принятого в некоторых
других языках, таких как C, Java и др.:
$var = “5.561”;
echo (int)$var // на выводе тип integer: 5
echo (double)$var // на выводе тип double: 5.561
echo (boolean)$var // на выводе тип boolean: 1
Допустимы следующие типы установки переменной в подобном формате:
(int) или (integer) – приведение к целому типу
(bool) или (boolean) – приведение к логическому типу
(double), (float) или (real) – приведение к вещественному типу
(string) – приведение к строковому типу
(array) – приведение к массиву
(object) – приведение к объекту
(unset) – приведение к null (в отличие от оператора unset(), полностью
удаляющей переменную из памяти).