Типы данных в php
РНР является языком с нестрогой типизацией — тип переменной определяется на основе ее значения. Тем не менее, следует иметь представление об типах данных, которые присутствуют в РНР. Всего их восемь, и все они перечислены ниже:
- boolean. Логический тип, содержит значения TRUE или FALSE.
- integer. Целое число.
- float. Вещественное число.
- string. Текст произвольной длины.
- array. Массив.
- object. Объект.
- resource. Ресурс (например, файл).
- NULL. Значение NULL.
Обычно заботиться о типах данных не следует — тип определятся автоматически при создании переменной. Например, создание переменной строкового типа выглядит следующим образом:
$variable = "Доброе утро!";
Создание переменной вещественного типа:
$variable = 1.2345;
Создание переменной логического типа:
$variable = TRUE;
В данном случае тип переменной определяется однозначно. Трудности начинаются при смешивании различных типов данных в одном выражении, например, при сложении целого числа и строки и т.п. Ниже приведено несколько примеров подобных выражений:
<?php //Тип и значение переменной: $variable = "О"; // строка "О" $variable = $variable +2; // целое число 2 $variable = $variable +1.1; // $вещественное число 3.1 $variable = 2 + "8 apples"; // целое число 10 ?>
Для предотвращения потенциальных проблем не следует смешивать различные типы данных. Но даже и в таком случае РНР выполняет автоматическое неявное преобразование типов. Если же требуется выполнить явное преобразование типа, то требуемый тип должен быть указан слева от имени переменной в круглых скобках. Ниже приведено несколько примеров явного преобразования типов:
$int_variable = (integer) $variable; $float_variable = (float) $variable; $string_variable = (string) $variable;
При преобразовании в логический тип boolean, следующие значения преобразуются в значение FALSE (все остальные значения, включая все ресурсы, преобразуются в TRUE):
- Логическое FALSE.
- Целое число 0.
- Вещественное число 0.0.
- Пустая строка и строка "О".
- Массив с нулевым количеством элементов.
- Объект, не имеющий свойств.
- Специальный тип NULL.
При преобразовании в целое число значения других типов преобразуются следующим образом:
- Логическое FALSE преобразуется в целое число 0, логическое TRUE преобразуется в целое число 1.
- Вещественные числа округляются в меньшую сторону.
При преобразовании в вещественное число сперва осуществляется преобразование в целочисленное значение. Возможно также преобразование строковых значений в численные типы данных, но при этом имеется ряд особенностей В следующей главе содержится описание основных операторов и управляющих структур языка РНР, при помощи которых можно создавать полноценные программы.
Автор: Стивен Хольцнер. Переводчик: С. Банников