Прежде чем приступить к рассмотрению переменных, констант и выражений в РНР, разберемся с типами данных, которые используются в языке. РНР относится к языкам с так называемыми свободными типами данных. Это означает, что допустимо применение операций к данным различных типов, а также присвоение некоторой переменной данных то одного, то другого типа. Этой возможностью следует пользоваться осторожно во избежание недоразумений.
Типы данных PHP — некоторое ограничение на множество возможных значений. Если мы каким-либо образом выделяем(ограничиваем) некоторое множество значений, то тем самым определяем тип данных.
Типы данных | Примеры | Описание значений | |
Строковый или символьный (String) |
"Привет всем!" |
Последовательность символов, заключенных в кавычки двойные или одинарные |
|
Числовой | Цельночисленный (integer) |
-456 34 0 |
Число, последовательность цифр, перед которой может быть указан знак числа(+ или -); перед положительными числами не обязательно ставить знак +. Число записывается без кавычек. |
С плавающей точкой(float) | 2.54 12.5E2 35E-3 |
Число с дробной частью. Целая и дробные части чисел разделяются точкой. |
|
Логический (булевый, 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
?>