ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.05.2024
Просмотров: 45
Скачиваний: 0
// якщо дані цієї форми відправлені, то викликаємо функцію показу
}
//т же саме, якщо була обрана особистість
if (isset($_GET["pers_create"])){
$art = new Person;
$art_vars = get_class_vars(get_class($art));
Make_form($art,$art_vars,"pers_create");
if (isset($_GET["create_real"])){ Show_($art_vars); }
}
// функція створення форми
function Make_form($art,$art_vars,$glob){
$str = "<form>"; // html код форми записується у рядок $str
//перебираємо список змінних класу об’єкта $art
foreach ($art_vars as $var_name => $var_value){
$str .="$var_name<input type=text name=$var_name><br>";
//створюємо елемент форми з ім’ям властивості класу
}
$str .= "<input type=hidden name=$glob>"; // щоб не забути, що ми створюємо
$str .= "<input type=submit name=create_real
value=‘Create and Show’></form>";
echo "$str"; // виводимо форму
}
// функція показу об’єкта
function Show_($art_vars){
global $art; //використається глобальне ім’я об’єкта
$k = count($art_vars); //число властивостей класу (змінних у формі)
$p=0; //допоміжна змінна
foreach ($art_vars as $name => $value){
$p++;
if ($_GET["$name"]=="") $val= $art->$name;
else $val = $_GET["$name"];
if ($p<>$k) $par .=‘"‘. $val.’",’;
else $par .=‘"‘. $val.’"‘;
}
$const=get_class($art);
$par = ‘$art->‘.$const ."(" .$par.");";
/* тепер $par являє собою php-код для виклику методу класу $art, споконвічно записаного в $par. наприклад, $art->Person(‘Vasia’,’Petrov’,’vas@intuit.ru’); */
eval($par); // функція eval виконує код, утримується в $par
$art->show();
}
?>
Листинг 6.6. Використання об’єктно-орієнтованого підходу
Висновок
Отже, ми вивчили основні поняття об’єктної моделі, використовуваної в мові PHP. Були описані правила створення класів й їхніх представників-об’єктів, способи завдання початкових значень змінним класу, способи одержання значень властивостей і виклик методів класів.
Контрольні питання
-
Дайте визначення об’єкту.
-
Дайте визначення класу.
-
Що входить в опис класу?
-
Для чого використовується ключове слово this?
-
Які існують обмеження на імена класів?
-
Яким чином ініціалізуються змінні класу?
-
Як створюється об’єкт класу?
-
Що таке успадкування? Яким чином відбувається успадкування в мові РНР?
-
Що таке механізм розширення? В чому сенс його використання?
-
Що таке оператор "::"? В чому сенс його використання?
-
Що таке оператор "parent"? В чому сенс його використання?