
- •Лабораторная работа №4
- •4.4. Теоретические сведения
- •Общие сведения о языке php
- •Работа в редакторе Zend Studio
- •4.4.3. Переменные и типы данных php
- •4.4.3.1.Переменные
- •4.4.3.2.Глобальные переменные
- •4.4.3.3.Статические переменные
- •4.4.3.4.Константы
- •4.4.3.5.Типы данных
- •4.4.3.6.Преобразование типов
- •4.4.4.Массивы
- •4.4.5. Операторы
- •4.4.5.1. Математические операторы
- •4.4.5.2. Операторы присваивания
- •4.4.5.3. Строковые операторы
- •4.4.5.4. Операторы инкремента и декремента
- •4.4.5.5. Логические операторы
- •4.4.5.6. Операторы равенства
- •4.4.5.7. Операторы сравнения
- •4.4.6. Конструкции языка
- •4.4.6.1. Проверка условий
- •4.4.6.2. Цикл с предусловием While
- •4.4.6.3. Цикл с постусловием do-while
- •4.4.6.4. Цикл For
- •4.4.6.5. Инструкции break и continue
- •4.4.6.7. Конструкция switch-case
- •4.4.7. Функции
- •4.4.7.1. Определение и вызов функций
- •4.4.7.2. Возврат значения из функции
- •4.4.7.3. Рекурсивные функции
- •4.4.7.4. Функции-переменные
- •4.4.8. Файловый ввод/вывод и файловая система
- •4.4.8.1. Проверка существования и размера файла
- •4.4.8.2. Открытие и закрытие файлов
- •4.4.8.3.Запись в файл
- •4.4.8.4. Чтение из файла
- •4.5. Пример разработки программы на php
- •4.6. Указания по организации самостоятельной работы студентов
- •4.7. Контрольные вопросы
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!";
}
?>