Манипуляции с типами
PHP не требует (и не поддерживает) явного типа при определнии переменной;
тип переменной определяется по контексту, в котором она используется.
То есть, если вы присвоите значение типа string
переменной $var, то $var станет строкой.
Если вы затем присвоите $var целочисленное значение, она станет целым числом.
Примером автоматического преобразования типа является оператор
сложения '+'. Если какой-либо из операндов является float,
то все операнды интерпретируются как float,
и результатом также будет float. В
противном случае операнды будут интерпретироваться как целые числа
и результат также будет целочисленным. Обратите внимание, что это
НЕ меняет типы самих операндов;
меняется только то, как они вычисляются и сам тип выражения.
Если последние два примера вам непонятны, смотрите Преобразование строк
в числа.
Если вы хотите, чтобы переменная принудительно вычислялась как
определенный тип, смотрите раздел приведение
типов. Если вы хотите изменить тип переменной, смотрите
settype().
Если вы хотите протестировать любой из примеров, приведенных в
данном разделе, вы можете использовать функцию
var_dump().
Замечание:
Поведение автоматического преобразования в массив в настоящий
момент не определено.
К тому же, так как PHP поддерживает индексирование в строках аналогично
смещениям элементов массивов, следующий пример будет верен для всех версий PHP:
Более подробно смотрите в разделе Доступ к символу
в строке.
Приведение типов
Приведение типов в PHP работает так же, как и в C: имя требуемого
типа записывается в круглых скобках перед приводимой переменной.
Допускаются следующие приведения типов:
-
(int), (integer) - приведение к integer
-
(bool), (boolean) - приведение к boolean
-
(float), (double), (real) - приведение к float
-
(string) - приведение к string
-
(array) - приведение к array
-
(object) - приведение к object
-
(unset) - приведение к NULL (PHP 5)
Приведение типа (binary) и поддержка префикса b были добавлены в PHP 5.2.1
Обратите внимание, что внутри скобок допускаются пробелы и
символы табуляции, поэтому следующие примеры равносильны по своему
действию:
Замечание:
Вместо использования приведения переменной к string, можно также заключить
ее в двойные кавычки.
|