PHP поддерживает восемь простых типов данных.
Четыре скалярных типа:
- boolean (логический) ;
- integer (целый) ;
- float (с плавающей точкой) ;
- string (строковый).
Два смешанных типа:
- array (массив) ;
- object (объект).
И два специальных типа:
- resource (ресурс) ;
- NULL.
В PHP обычно тип переменной явно не объявляется. Это делает сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная.
Тип boolean (булев или логический тип) – это простейший тип выражает истинность значения. Переменная этого типа может иметь только два значения – истина TRUE или ложь FALSE .
Чтобы определить булев тип, используют ключевое слово TRUE или FALSE. Оба регистронезависимы.
<?php
$test = True;
echo $test;
?>
Логические переменные используются в различных управляющих конструкциях (циклах, условиях и т.п.). Иметь логический тип, т.е. принимать только два значения, истину или ложь, могут также и некоторые операторы (например, оператор равенства). Они также используются в управляющих конструкциях (условиях, циклах и т.п.) для проверки каких-либо условий. Например, в условной конструкции проверяется истинность значения оператора или переменной и в зависимости от результата проверки выполняются те или иные действия. Здесь условие может быть истинно или ложно, что как раз и отражает переменная и оператор логического типа.
Тип integer (целый). В начале немного математики. Натуральные числа (естественные числа) — числа, возникающие естественным образом при счёте (как в смысле перечисления, так и в смысле исчисления).
Существуют два подхода к определению натуральных чисел — числа, используемые при:
- перечислении (нумеровании) предметов (первый, второй, третий, …);
- обозначении количества предметов (нет предметов, один предмет, два предмета, …).
Отрицательные и нецелые (рациональные, вещественные, …) числа натуральными не являются. Ноль некоторые авторы включают в множество натуральных чисел, другие — нет.
Целые числа — расширение множества натуральных чисел, получаемое добавлением к множеству натуральных чисел нуля и отрицательных чисел вида -n. Необходимость рассмотрения целых чисел продиктована невозможностью, в общем случае, вычесть из одного натурального числа другое — можно вычитать только меньшее число из большего.
Таким образом, целое число (коротко, целое)- это число из множества Z = {..., -2, -1, 0, 1, 2, ...}.
Целое может быть представлено в следующих видах:
- десятеричном (основа 10)
- шестнадцатеричном (основа 16);
- восьмеричном (основа 8);
- двоичном (основа 2) (доступно с PHP 5.4.0).
Целому может предшествовать знаки - (минус) или + (плюс).
В шестнадцатеричной записи перед числом пишется префикс 0x.
В восьмеричной записи перед числом пишется префикс 0.
В двоичной записи перед числом пишется префикс 0b.
Структурно целое выглядить следующим образом:
десятичное: | [1-9][0-9]* | 0 |
шестнадцатеричное: | 0[xX][0-9a-fA-F]+ |
восьмеричное: | 0[0-7]+ |
двоичное: | 0b[01]+ |
целое | [+-]?decimal | [+-]?hexadecimal | [+-]?octal | [+-]?binary |
Пример:
<?php
$a = 1234; // десятеричное число
echo $a,"<br>";
$a = -123; // отрицательное число
echo $a,"<br>";
$a = 0123; // восьмеричное число (эквивалент десятеричного 83)
echo $a,"<br>";
$a = 0x1A; // шестнадцатеричное число (эквивалент десятеричного 26)
echo $a,"<br>";
//$a = 0b11111111; // двоичное число (эквивалент десятеричного 255)
//доступно с PHP 5.4.0
//echo $a,"<br>";
?>
Тип float (с плавающей точкой). Подробно о числах с плавающей точкой (вещественных числах) в PHP можно почитать на http://php.net/manual/ru/language.types.float.php, например.
Тут кратко изложим два момента.
Числа с плавающей точкой (также известные как "float", "double", или "real") могут быть определены следующими синтаксисами:
<?php
$a = 1.2345;
$b = 2.1e3;
$c = 8E-4;
echo "a=",$a,"<br>";
echo "b=",$b,"<br>";
echo "c=",$c,"<br>";
?>
В примере используются e3 и E-4. e3 = 10^3 = 1000. E-4 = 10^(-4) = 0,0001.
Проверять числа с плавающей точкой на равенство проблематично из-за их внутреннего представления. Тем не менее, существуют способы для их сравнения, которые работают несмотря на все эти ограничения.
Для сравнения чисел с плавающей точкой используется верхняя граница относительной ошибки при округлении. Эта величина называется машинной эпсилон или единица округления (unit roundoff) и представляет собой самую маленькую допустимую разницу при расчетах.
$x и $y равны до 6-ти знаков после запятой.
<?php
$x = 12.3456789;
$y = 12.3456780;
$epsilon = 0.000001;
if(abs($x-$y) < $epsilon) {
echo "true";
}
?>
Контрольные вопросы и задания
- Протестируйте приведенные примеры изменив значения переменных.
- Приведите примеры, когда целесообразно использование типа integer.
- Приведите примеры, когда целесообразно использование типа float.