Главные новости

Типы данных PHP

В этой главе:

Что такое тип данных

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

Необходимость использования типов данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора.

Виды типов данных

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

В ситуациях, когда требуется конкретный тип данных, например при выполнении операции математического деления, PHP автоматически выполнит преобразование типов данных. Так, если у вас имеется строка из одного символа "2", она будет преобразована в целое число 2. Такие преобразования - практически всегда именно то, что вам и требовалось от PHP, и он делает это незаметно для вас.

PHP поддерживает следующие типы данных:

Четыре простых типа:

  • boolean
  • integer
  • float (это число с плавающей точкой, также известное как double)
  • string

Два смешанных типа: array (массив) и object (обьект). Они будут рассмотрены позже, в следующих главах.

И, наконец, два специальных типа:

  • resource
  • NULL

Для удобства понимания в этом руководстве используется также несколько псевдотипов.

Вы также можете найти несколько упоминаний типа двойной точности (double). Рассматривайте его как число с плавающей точкой, два имени существуют только по историческим причинам.

Как уже было упомянуто, программисту не нужно самому устанавливать тип переменной (хотя и можно сделать явное приведение типа самому, когда без этого нельзя обойтись), обычно за него это делает интерпретатор PHP во время выполнения программы, выбирая тип переменной в зависимости от контекста, в котором она используется.

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

Тип переменной можно узнать при помощи функции gettype($variable), которая возвращает имя типа в строковом представлении.

Примеры:

<?php $x_bool = true; // логический тип
$x_str = "bar"; // строковый тип
$x_str2 = 'bar'; // еще один строковый тип
$x_int = 20; // целочисленный тип

echo gettype($x_bool); // выведет: boolean
echo gettype($x_str); // выведет: string

var_dump($x_str2); // выведет: string(3)'bar' - 3 кол-во символов в строке
var_dump($x_int); // выведет: int(20)
?>

Элементарные типы

PHP является слабо типизированным языком. Это означает, что нет необходимости объявлять тип данных, который должна хранить переменная. Так, в пределах одной и той же области видимости переменная $num может содержать как значение 2, так и строку 'два'.

Но это не означает, что в PHP нет понятия типа. Каждое значение, которое можно присвоить переменной, имеет свой тип. Вы можете определить тип значения переменной с помощью одной из встроенных функций проверки типов языка PHP. В таблице представленной ниже перечислины функции для проверки элементарных типов данных. Каждой функции передается переменная или значение, она возвращает значение true (истина), если аргумент относится к соответствующему типу и false в противном случае.

Имя функции Тип Описание
is_bool() Boolean Одно из двух значений: true или false
is_integer() Integer Целое число
is_double() float/double/real Вещественное число
is_string() String Символьные данные - строка
is_object() Object Объект
is_array() Array Массив
is_resource() Resource Дескриптор, используемый для идентификации работы с внешними ресурсами, такими как базы данных или файлы
is_null() Null Неинициализированное значение

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