![](/user_photo/2706_HbeT2.jpg)
PHP5_nachinayushim
.pdf![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u701x1.jpg)
Ответы 703
register_user(); $userid = get_userid();
$_SESSION['userid'] = $userid;
}
session_start(); session_register("userid", "useremail"); if (empty($_GET['action'])){
$_GET['action'] = "";
}
switch($_GET['action']) { case "order":
place_order(); break;
case "register": customer_session();
order_menu(); break;
default: login_form();
break;
}
?>
Глава 12
Упражнение 1
В чем разница между классом и объектом?
Решение
Класс подобен чертежу, в котором лишь указаны инструкции для создания объек+ та. Объект представляет собой экземпляр класса. Классы используются во время раз+ работки, в ходе изменения кода в PHP+файле. Объекты используются во время вы+ полнения программы, когда присваиваются или изменяются значения свойств и вызываются методы. Класс представлен текстом в текстовом файле. Объект сущест+ вует в памяти в виде инструкций.
Упражнение 2
Объясните идею наследования и дайте пример того, когда его следует использо+ вать, не повторяя при этом примеров, рассмотренных в данной главе.
Решение
Наследование ++++++ способность объекта приобретать свойства и методы родитель+ ского объекта. Наследование подразумевает связанную иерархию и повторное ис+ пользование кода. Дочерний класс ++++++ более специализированная версия родительско+ го класса, имеющая дополнительные методы и свойства и/или другую реализацию тех же методов и свойств. В дочернем классе не может быть меньше методов или свойств, чем в родительском. Примером наследования может быть связь между по+ звоночными животными и млекопитающими. Все позвоночные животные имеют позво+ ночник, состоящий из множества позвоночных костей, окружающих спинной мозг,
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u702x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u703x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u704x1.jpg)
706 Приложение А
Рис. A.1.
Упражнение 2
Используя функции disk_total_space() и disk_free_space(), покажите графическим способом объем используемого пространства на жестком диске.
Решение
Существует два очевидных способа графического отображения результатов этого упражнения. Самый простой и быстрый способ ++++++ создать скользящую шкалу: прямо+ угольник, состоящий из двух цветных блоков, один из которых представляет исполь+ зуемое пространство на диске, а второй ++++++ свободное пространство. Это позволит создать компактную диаграмму использования дискового пространства. Ниже под+ робно разбирается код (файл exercise2a.php) для решения этой задачи.
Хорошей методикой всегда считалось хранение значений ширины и высоты изо+ бражений в сценарии. Изменить впоследствии размер изображения можно будет в начале сценария, в результате чего все вычисления ширины и высоты будут автома+ тически обновлены.
<?php
$iWidth = 500; $iHeight = 50;
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u705x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u706x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u707x1.jpg)
Ответы 709
Чтобы нарисовать дугу, представляющую свободное пространство, начните с того места, где заканчивается область занятого пространства, т.е. с $usedDegree, и про+ должайте рисовать дугу до 360 градусов, до конца круга:
imagefilledarc($myImage, ($iWidth/2), ($iHeight/2), $iWidth - 2, $iHeight - 2, $usedDegrees, 360, $green, IMG_ARC_EDGED);
Завершаем сценарий как обычно:
header("Content-type: image/png"); imagepng($myImage); imagedestroy($myImage);
?>
Результат выполнения сценария показан на рис. A.3.
Рис. A.3.
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u708x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u709x1.jpg)
![](/html/2706/356/html_7o_ZwAhYkF.IEn3/htmlconvd-YZt_5u710x1.jpg)