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

Типы PHP делятся на скалярные и составные типы.

Скалярные типы: boolean, integer, float, string и null.

Составными типами являются array и object.

Так же resource представляет собой непрозрачный тип, внутренняя структура которого не определена и зависит от реализации.

Скалярные типы являются типами значений. То есть переменная скалярного типа ведет себя так, как если бы она содержала собственное значение.

Составные типы могут содержать другие переменные, помимо самой переменной, например, массив содержит свои элементы, а объект содержит свои свойства.

Объекты и ресурсы являются типами дескрипторов . Тип содержит информацию — в дескрипторе  которая приводит к значению. Различия между типами значений и дескрипторов становятся очевидными, когда дело доходит до понимания семантики присваивания , передачи аргументов функциям и возврата значений из них.

Функции для запроса информации о типах: gettypeis_typesettype и 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 указывает тип ресурса.

Написать комментарий