Типы данных в PHP

Содержание
Типы PHP делятся на скалярные и составные типы.
Скалярные типы: boolean
, integer
, float
, string
и null
.
Составными типами являются array
и object
.
Так же resource
представляет собой непрозрачный тип, внутренняя структура которого не определена и зависит от реализации.
Скалярные типы являются типами значений. То есть переменная скалярного типа ведет себя так, как если бы она содержала собственное значение.
Составные типы могут содержать другие переменные, помимо самой переменной, например, массив содержит свои элементы, а объект содержит свои свойства.
Объекты и ресурсы являются типами дескрипторов . Тип содержит информацию — в дескрипторе — которая приводит к значению. Различия между типами значений и дескрипторов становятся очевидными, когда дело доходит до понимания семантики присваивания , передачи аргументов функциям и возврата значений из них.
Функции для запроса информации о типах: gettype
, is_type
, settype
и var_dump
.
Скалярные типы
Целочисленные типы и типы с плавающей запятой вместе называются арифметическими типами. Функция is_numeric
указывает, является ли заданное значение числом или числовой строкой.
Функция is_scalar
указывает, имеет ли заданное значение скалярный тип. Однако эта функция не считается NULL
скалярной. Для проверки NULL
используйте is_null
.
Некоторые объекты могут поддерживать арифметические и другие скалярные операции и/или быть конвертируемыми в скалярные типы (в настоящее время это доступно только для внутренних классов).Такие типы объектов вместе со скалярными типами называются скалярно-совместимыми типами . Обратите внимание, что один и тот же тип объекта может быть скалярно-совместимым для одной операции, но не для другой.
Логический тип (boolean)
Булев тип — bool
, для которого имя boolean
является синонимом. Этот тип может хранить два различных значения, которые соответствуют логическим значениям true
и false
.
Функция is_bool
указывает, имеет ли заданное значение тип bool
.
Целочисленный тип (integer)
Тип int
, для которого имя integer
является синонимом представляет собой числовую константу, представляющую целое число без какой-либо дробной части. PHP позволяет выражать целое число в десятичной, шестнадцатеричной, восьмеричной или двоичной системе счисления, добавляя к нему соответствующий символ. Диапазон значений [-2147483648, 2147483647].
Некоторые операции с целочисленными значениями дают математический результат, который не может быть представлен в виде целого числа. Примеры включают следующее:
- Увеличение наибольшего значения или уменьшение наименьшего значения.
- Применение унарного минуса к наименьшему значению.
- Умножение, сложение или вычитание двух значений.
В таких случаях вычисление выполняется так, как если бы типы значений были float
с результатом, имеющим этот тип.
Функция is_int
указывает, имеет ли заданное значение тип int
.
Тип с плавающей запятой (float)
Существует один тип с плавающей запятой float
, для которого имена double
и real
являются синонимами. Тип float
должен поддерживать как минимум диапазон и точность 64-битного представления двойной точности IEEE 754.
Функция is_float
указывает, имеет ли заданное значение тип float
. Функция is_finite
указывает, является ли данное значение с плавающей запятой конечным. Функция is_infinite
указывает, является ли заданное значение с плавающей запятой бесконечным. Функция is_nan
указывает, является ли заданное значение с плавающей запятой типом NaN
.
Тип строки (string)
Строка — это набор смежных байтов, представляющий собой последовательность из нуля или более символов.
Концептуально строку можно рассматривать как массив байтов — элементов , чьи ключи — это int
значения, начинающиеся с нуля. Тип каждого элемента string
. Однако строка не считается коллекцией, поэтому ее нельзя перебирать.
Строка, длина которой равна нулю, является пустой строкой.
Числовая строка — это строка, начальные символы которой соответствуют требованиям числовой строки, а конечные символы не являются числовыми. Нечисловая строка — это строка, которая не является числовой строкой.
Над строкой может быть выполнена только одна операция мутации — присваивание смещения, в которой используется оператор присваивания =
.
Функция is_string
указывает, имеет ли заданное значение строку типа.
Тип null
Тип null имеет только одно возможное значение — NULL
.
Функция is_null
указывает, является ли заданное значение NULL
.
Составные типы (composite)
Массив (array)
Массив — это структура данных, содержащая набор из нуля или более элементов, доступ к значениям которых осуществляется с помощью ключей типа int
или string
.
Функция is_array
указывает, является ли заданное значение массивом.
Объекты (object)
Объект является экземпляром класса
. Каждое отдельное объявление класса определяет новый тип класса, и каждый тип класса является типом объекта.
Функция is_object
указывает, является ли заданное значение объектом, а функция get_class
указывает имя класса объекта.
Ресурс
Ресурс — это дескриптор какой-то внешней сущности. Примеры включают файлы, базы данных и сетевые сокеты.
Ресурс — это абстрактная сущность, представление которой не определено. Ресурсы создаются или потребляются только реализацией, они никогда не создаются и не используются PHP-кодом.
Каждый отдельный ресурс имеет уникальную идентичность в некой неопределенной форме.
Функция is_resource
указывает, является ли данное значение ресурсом, а функция get_resource_type
указывает тип ресурса.