
Прежде чем приступить к рассмотрению переменных, констант и выражений в РНР, разберемся с типами данных, которые используются в языке. РНР относится к языкам с так называемыми свободными типами данных. Это означает, что допустимо применение операций к данным различных типов, а также присвоение некоторой переменной данных то одного, то другого типа. Этой возможностью следует пользоваться осторожно во избежание недоразумений.
Типы данных 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:
- строка "
false", независимо от регистра; - пустая строка
""и строка"0"; - число 0, целое или с плавающей точкой;
Null;- пустой массив (количество элементов равно 0);
- пустой объект (количество элементов равно 0);
Другие значения преобразуются в true.
Значения логического типа могут участвовать в арифметических операциях. В таких случаях значение false пробразуется в 0, а true — в 1. Например true+true — возвращает 2, а true+false — 1.
<?php
echo true+true ."<br>";
echo true+false
?>
В окне веб-браузера это будет выглядеть ТАК.
Иногда требуются данные некоторого типа привести к определенному типу, чтобы гарантированно обеспечить корректность последующих операций над ними, не полагаясь на возможности автоматического преобразования типов. Для приведения данных к заданному типу служат специальные операторы — имятипа в круглых скобках, записываемое перед данными, которые необходимо преобразовать:
intилиinteger— приведение к целочисленному типу;float, doubleилиreal— приведенные к числовому типу с плавающей точкой;string— приведенные к строковому типу;boolилиboolean— приведенные к логическому (булевому) типу;array— приведенные к типу "массив";оdject— приведенные к типу "объект".
<?php
echo (int) 12.51 . "<br>"; //результат 12
echo (float) "12.51 руб." . "<br>"; //результат 12.51
echo (bool) "12.51 руб." . "<br>"; //результат 1(true )
echo true //результат 1
?>
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться