Типы данных PHP
В этой главе:
-
Что такое тип данных
-
Виды типов данных
-
Элементарные типы
Что такое тип данных
Тип данных — фундаментальное понятие теории программирования, определяющее множество значений и набор операций, которые можно применять к таким значениям, и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам.
Необходимость использования типов данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора.
Виды типов данных
Все переменные хранят данные определенных типов. PHP автоматически выбирает тип переменной, соответствующий присвоенному значению. К таким типам данных относятся строки, числа и более сложные типы, такие как массивы и объекты. Последние два типа будут рассмотрены подробно позднее в других главах. А пока главное, что вы должны понять - если у вас нет особого повода позаботиться о типе переменной, PHP автоматически выполнит все необходимое, так что не беспокойтесь об этом.
В ситуациях, когда требуется конкретный тип данных, например при выполнении операции математического деления, PHP автоматически выполнит преобразование типов данных. Так, если у вас имеется строка из одного символа "2", она будет преобразована в целое число 2. Такие преобразования - практически всегда именно то, что вам и требовалось от PHP, и он делает это незаметно для вас.
PHP поддерживает следующие типы данных:
Четыре простых типа:
-
boolean
-
integer
-
float (это число с плавающей точкой, также известное как double)
-
string
Два смешанных типа: array (массив) и object (обьект). Они будут рассмотрены позже, в следующих главах.
И, наконец, два специальных типа:
-
resource
-
NULL
Для удобства понимания в этом руководстве используется также несколько псевдотипов.
Вы также можете найти несколько упоминаний типа двойной точности (double). Рассматривайте его как число с плавающей точкой, два имени существуют только по историческим причинам.
Как уже было упомянуто, программисту не нужно самому устанавливать тип переменной (хотя и можно сделать явное приведение типа самому, когда без этого нельзя обойтись), обычно за него это делает интерпретатор PHP во время выполнения программы, выбирая тип переменной в зависимости от контекста, в котором она используется.
Примечание: если вы хотите проверить тип и значение определённого выражения или переменной, используйте для этого функцию var_dump().
Тип переменной можно узнать при помощи функции gettype($variable), которая возвращает имя типа в строковом представлении.
Примеры:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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 |
Неинициализированное значение |
Проверка типа переменной или значения особенно важна, когда вы будете работать с аргументами в методе или функции (о них вы узнаете позднее).