Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_Начало_Лабораторная работа4нов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

4.4.3.5.Типы данных

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

  • целые числа;

  • вещественные числа;

  • строки;

  • массивы;

  • объекты;

  • логические величины.

Одним из столпов любого языка программирования является поддержка числовых данных. В РНР поддерживаются как целые, так и вещественные числа (двойной точности). Разные числовые форматы подробно описываются в следующих разделах.

Целое число не имеет дробной части и представляется последовательностью из одной или нескольких цифр. Примеры целых чисел: 5, 591, 52.

Вещественные числа (числа с плавающей точкой) отличаются от целых наличием дробной части. Они используются для представления значений, требующих повышенной точности, — например, температур или денежных величин. В РНР поддерживаются два вещественных формата: стандартная и научная (экспоненциальная) запись.

Стандартная запись удобна для представления типичных вещественных чисел — скажем, денежных величин. Примеры: 12.45, 98.6.

Строки делятся на две категории в зависимости от типа ограничителя — они могут ограничиваться парой кавычек (" ") или апострофов (' '). Между этими категориями существуют два принципиальных различия. Во-первых, имена переменных в строках, заключенных в кавычки, заменяются соответствующими значениями, а строки в апострофах интерпретируются буквально, даже если в них присутствуют имена переменных,

Два следующих объявления дают одинаковый результат:

$food = "meatloaf";

$food = 'meatloaf';

Однако результаты следующих объявлений сильно различаются:

$sentence = "My favorite food is $food";

$sentence2 = 'My favorite food is $food';

Переменной $sentence присваивается строка

My favorite food is meatloaf.

Обратите внимание: переменная $food автоматически интерпретируется. С другой стороны, переменной $sentence2 присваивается строка

My favorite food is $food.

В отличие от переменной $sentence, в $sentence2 осталась не интерпретированная переменная $food. Различия обусловлены использованием кавычек и апострофов при присваивании переменным $sentence и $sentence2.

В РНР, как и в большинстве современных языков программирования, строки могут содержать служебные символы (например, символы табуляции или новой строки), перечисленные в табл. 1.

Таблица 1.

Служебные символы в строках

Последовательность

Смысл

\n

Новая строка

 \r

Возврат курсора

 \t

Горизонтальная табуляция

\\

Обратная косая черта

  \$

Знак доллара

\"

Кавычка

\[0-7]{1,3}

Восьмеричная запись числа (в виде регулярного выражения)

 \x[0-9A-Fa-f]{l,2}

Шестнадцатиричная запись числа (в виде регулярного выражения)

Объекты

К пятому типу данных РНР относятся объекты. Объект представляет собой переменную, экземпляр которой создается по специальному шаблону, называемому классом. Концепции объектов и классов являются неотъемлемой частью парадигмы объектно-ориентированного программирования (ООП).

В отличие от других типов данных, поддерживаемых в языке РНР, объекты должны объявляться явно. Необходимо понимать, что объект — всего лишь конкретный экземпляр класса, используемого в качестве шаблона для создания объектов с конкретными характеристиками и функциональными возможностями. Следовательно, объявление класса должно предшествовать объявлению объектов, создаваемых на их основе. Пример объявления класса и последующего создания объектов на его основе:

class appliance {

var power:

function set_power($on_off) {

$this->power = $on_off; 

}

}

...

$blender = new appliance;

Определение класса задает атрибуты и функции, связанные с некоторой структурой данных — в данном примере это структура с именем appliance (устройство). У этой структуры имеется всего один атрибут power (мощность). Для изменения этого атрибута создается метод set_power.

Помните: определение класса — всего лишь шаблон, и выполнять операции с ним в программе невозможно; сначала нужно создать объекты на основе этого шаблона. Объекты создаются при помощи ключевого слова new. Например, в приведенном выше фрагменте создается объект $blender класса appliance.

После создания объекта $blender можно задать его мощность при помощи метода

set_power: $blender->set_power("on");

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

Логические величины (истина/ложь)

Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические величины создаются двумя способами: при проверке условий и в виде значений переменных. Обе ситуации достаточно просты.

Сравнения существуют в нескольких формах. Чаще всего они встречаются при использовании оператора = в условной команде if. Пример:

if ($sum == 40) :

...

Результатом проверки является либо истина, либо ложь: переменная $sum либо равна 40, либо не равна. Если переменная $sum равна 40, проверка дает истинный результат. В противном случае результат равен false.

Логические величины также могут определяться явным присваиванием переменной истинного или ложного значения. Пример:

<?

$flag = TRUE;

if ($flag == TRUE) {

echo "The flag is true!";

}

else

{

echo "The flag is false!";

}

?>

Если переменная $flag истинна, выводится первое сообщение, а если ложна — второе сообщение.

Возможен и другой вариант — представление истинных и ложных логических величин в виде значений 1 и 0 соответственно. В этом случае предыдущий пример выглядит так:

<?

$flag = 1;

if ($flag == TRUE) {

echo "The flag is true!";

}

else

{

echo "The flag is false!";

}

?>

Cуществует еще один способ:

<?

$flag = 0;

// При выполнении этой команды косвенно

// проверяется условие "if ($flag == TRUE)"

if ($flag)

{

echo "The flag is true!";

}

else

{ echo "The flag is false!";

}

?>