PHP: Типы данных
Автор: | Артемьев Сергей Игоревич |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
Тип данных - это описание, определяющее свойства и порядок обработки данных. Например, фраза "переменная $str имеет тип данных "строка"" означает, что в этой переменной может содержаться любое число символов, а операция сложения строк представляет собой последовательное соединение слагаемых строк в одну.
PHP поддерживает 8 базовых типов данных.
- 4 скалярных типа:
- boolean. Логический тип данных, переменные данного типа могут принимать значения true (правда) или false (ложь).
- integer. Целочисленный тип данных, переменные могут принимать целые значения (...-2, -1, 0, 1, 2...) в диапазопе от -2^31 до +2^31. Если значение превышает данный порог - оно автоматически переводится в тип float.
- float. Числовой тип данных с плавающей точкой, может содержать как целые, так и дробные величины.
- string. Строковый тип данных. Содержит нефиксированное количество различных символов. PHP не накладывает никаких ограничений на длину строки, поэтому можно смело работать даже с ОЧЕНЬ большими строками.
- 2 комплексных (составных) типа:
- array. Массив, содержит упорядоченный список элементов. Подробнее о массивах мы поговорим в отдельном разделе.
- object. Объект, содержит некий объект (экземпляр класса)
- 2 специальных типа:
- resource. Ссылка на абстрактный элемент, т.н. внешний ресурс. Примеры внешних ресурсов - ссылка на файл и ссылка на результат выполнения запроса.
- NULL. Пустой тип данных, обозначающий отсутствие какого-либо значения. О таких значениях обычно говорят "не определено". Пустым значением можно инициализировать переменные любого другого типа.
В документации и справочниках используется ещё 3 т.н. "псевдотипа"
- mixed. Смешанный тип данных, означает, что тип данных переменной неизвестен и его надо определять перед использованием.
- number. Числовой тип, означает что значение имеет либо тип данных int, либо float
- callback. Тип даных "ссылка на функцию". Используется при вызове некоторых функций. Мы рассмотрим подробнее этот тип данных при работе с массивами и регулярными выражениями.
PHP позволяет легко менять типы данных. Например, следующий код с точки зрения интерпретатора совершенно корректен:
<php $someVar = NULL; echo $someVar; $someVar = "отрывок из сказки"; echo $someVar; $someVar = 123; echo $someVar; ?>
Кроме того, приведение типов может быть сделано явно при помощи функций gettype() и settype().
<php $someVar = 123; // определяем $someVar как // переменную целочисленного типа. echo gettype($someVar); // получим на выходе "integer" settype($someVar, "string") // переопределяем тип данных на строковый echo gettype($someVar); // получим на выходе "string" ?>
Сразу могу сказать, что необходимость в явном приведении типов возникает очень редко, т.к. PHP при работе с данными сам корректно проводит все необходимые преобразования. А вот функциями определения типов мы будем пользоваться достаточно часто, особенно при обработке данных, получаемых извне или вводимых пользователем. Но об этом мы поговорим в соответствующих разделах.