Типы данных PHP

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

Типы данных PHP — некоторое ограничение на множество возможных значений. Если мы каким-либо образом выделяем(ограничиваем) некоторое множество значений, то тем самым определяем тип данных.

Типы данных в РНР

Типы данных Примеры Описание значений
 Строковый или символьный (String)

"Привет всем!"
"д.т. 465 36 78"
"Сегодня 1.01.2009г."

Последовательность символов, заключенных в кавычки двойные или одинарные

Числовой Цельночисленный
(integer)
-456
34
0

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

С плавающей точкой(float) 2.54
12.5E2
35E-3

Число с дробной частью. Целая и дробные части чисел разделяются точкой.
В экспотонциальной форме символ Е используется для обозначения 10, за которым следует число, указывающее степень. Например запись 3Е2 означает , т.е. 300.

Логический (булевый,  Boolean)
true
false
Этот тип имеет два значения:
true(истина, да) или
false(ложь, нет)
Null null

Этот тип данных имеет одно значение—null, указывающее на отсутствие какого бы то ни было значения.

Массив (Array)  

Этот тип данных имеет одно множество значений, которые могут быть различных типов

Объект (Odject)  

Програмный объект, определяемый своими свойствами

Ресурс(Resourse)  

Например открытый файл, графические данные и др.

В выражениях с операторами могут использоваться данные различных типов. Например, в арифметическом выражении могут оказаться данные не только числового, но строкового или логического типа. В таких случаях интерпретатор РНР автоматически приводит данные к нужному типу. Например, в выражении с арифметическим оператором сложения + операнды могут быть как строковыми, так и числовыми:

<?php
echo "5+4". '<br>'; //результат 5+4
echo "5"+"4".'<br>'; //результат 9
echo "5"+4 .'<br>'; //результат 9
echo "5 рублей"+4 .'<br>'; //результат 9
echo "Доход 5"+4 .'<br>'; //результат 4
echo "Привет"+4 . '<br>'; //результат 4
echo "Привет"+"всем!"; //результат 0
?>

В окне веб-браузера это будет выглядеть ТАК.

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

Примечание. В JavaScript оператор + применительно к числам является оператором сложения, а применительно к строкам — оператором конкатенации(склейки). В выражениях с этим оператором и с данными строкового и числового типа последние в JavaScript приводят к строковому типу. Так выражение "5"+4 даст в результате "54", а не 9, как в РНР.

Данные различных типов могут участвовать в логических операциях и операциях сравнения, которые возвращают логическое значение true или false. В таких случаях интерпретатор РНР автоматически приводит данные нелогического типа к логическому. При этом следующие значения преобразуются в false:

Другие значения преобразуются в true.

Значения логического типа могут участвовать в арифметических операциях. В таких случаях значение false пробразуется в 0, а true—в 1. Например true+true —возвращает 2, а true+false — 1.

<?php
echo true+true .'<br>';
echo true+false
?>

В окне веб-браузера это будет выглядеть ТАК.

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

Рассмотрим пример.

<?php
echo (int) 12.51 . '<br>'; //результат 12
echo (float) "12.51 руб." . '<br>'; //результат 12.51
echo (bool) "12.51 руб." . '<br>';  //результат 1(true )
echo true //результат 1
?>




  • Другие |
назадвверхвперед
Rambler's Top100