бБЕДЕМХЕ
мХФЕНОХЯЮММШЕ ТСМЙЖХХ ОНГБНКЪР БЮЛ ОНКСВХРЭ ХМТНПЛЮЖХЧ Н ЙКЮЯЯЮУ
Х ЩЙГЕЛОКЪПЮУ НАЗЕЙРНБ. бШ ЛНФЕРЕ ОНКСВХРЭ ХЛЪ ЙКЮЯЯЮ ХГ ЩЙГЕЛОКЪПЮ
НАЗЕЙРЮ ПЮБМН ЙЮЙ Х БЯЕ ЕЦН ЯБНИЯРБЮ Х ЛЕРНДШ. хЯОНКЭГСЪ ЩРХ
ТСМЙЖХХ, БШ ЯЛНФЕРЕ СЯРЮМНБХРЭ МЕ РНКЭЙН ОПХМЮДКЕФМНЯРЭ НАЗЕЙРЮ
Й ЙНМЙПЕРМНЛС ЙКЮЯЯС, МН Х НОПЕДЕКХРЭ МЮЯКЕДНБЮМХЕ (Й ОПХЛЕПС ЙЮЙНИ
ЙКЮЯЯ МЮЯКЕДСЕР ЙКЮЯЯ ДЮММНЦН НАЗЕЙРЮ).
рПЕАНБЮМХЪ
щРХ ТСМЙЖХХ БЯЕЦДЮ ДНЯРСОМШ.
сЯРЮМНБЙЮ
дКЪ ХЯОНКЭГНБЮМХЪ ЩРХУ ТСМЙЖХИ МЕ РПЕАСЕРЯЪ ОПНБЕДЕМХЕ СЯРЮМНБЙХ,
ОНЯЙНКЭЙС НМХ ЪБКЪЧРЯЪ ВЮЯРЭЧ ЪДПЮ PHP.
мЮЯРПНИЙЮ БН БПЕЛЪ БШОНКМЕМХЪ
дЮММНЕ ПЮЯЬХПЕМХЕ МЕ НОПЕДЕКЪЕР МХЙЮЙХЕ ДХПЕЙРХБШ ЙНМТХЦСПЮЖХХ Б php.ini.
рХОШ ПЕЯСПЯНБ
дЮММНЕ ПЮЯЬХПЕМХЕ МЕ НОПЕДЕКЪЕР МХЙЮЙХЕ РХОШ ПЕЯСПЯНБ.
оПЕДНОПЕДЕКЕММШЕ ЙНМЯРЮМРШ
дЮММНЕ ПЮЯЬХПЕМХЕ МЕ НОПЕДЕКЪЕР МХЙЮЙХЕ ЙНМЯРЮМРШ.
оПХЛЕПШ
б ОПХБЕД╦ММНЛ МХФЕ ОПХЛЕПЕ, ЛШ ЯМЮВЮКЮ НОПЕДЕКХЛ АЮГНБШИ ЙКЮЯЯ
Х ЙКЮЯЯ ЕЦН МЮЯКЕДСЧЫХИ. аЮГНБШИ ЙКЮЯЯ НОХЯШБЮЕР НБНЫ: ЯЗЕДНАЕМ
КХ Х ЙЮЙНЦН БМЕЬМЕ ЖБЕРЮ. дНВЕПМХИ ЙКЮЯЯ Spinach
ДНАЮБКЪЕР ЛЕРНД ОПХЦНРНБКЕМХЪ НБНЫЮ Х ОПНБЕПЙХ -- АШК КХ НМ СФЕ
ОПХЦНРНБКЕМ.
Пример 1. classes.inc
<?php
// АЮГНБШИ ЙКЮЯЯ Я НЯМНБМШЛХ ЯБНИЯРБЮЛХ Х ЛЕРНДЮЛХ class Vegetable {
var $edible; var $color;
function Vegetable($edible, $color="green") { $this->edible = $edible; $this->color = $color; }
function is_edible() { return $this->edible; }
function what_color() { return $this->color; } } // ЙНМЕЖ ЙКЮЯЯЮ Vegetable
// ПЮЯЬХПЪЕР АЮГНБШИ ЙКЮЯЯ class Spinach extends Vegetable {
var $cooked = false;
function Spinach() { $this->Vegetable(true, "green"); }
function cook_it() { $this->cooked = true; }
function is_cooked() { return $this->cooked; } } // ЙНМЕЖ ЙКЮЯЯЮ Spinach
?>
|
|
рЕОЕПЭ ЛШ ЯНГДЮДХЛ ОН НАЗЕЙРС ЙЮФДНЦН ЙКЮЯЯЮ Х ПЮЯОЕВЮРЮЕЛ ХМТНПЛЮЖХЧ Н
МХУ, БЙКЧВЮЪ МЮЯКЕДНБЮРЕКЭМНЯРЭ. рЮЙФЕ ЛШ НАЗЪБХЛ МЕЯЙНКЭЙН
ТСМЙЖХИ-СРХКХР, ЦКЮБМШЛ НАПЮГНЛ ДКЪ СДНАМНЦН БШБНДЮ ПЕГСКЭРЮРНБ.
Пример 2. test_script.php
<pre> <?php
include "classes.inc";
// ТСМЙЖХХ-СРХКХРШ
function print_vars($obj) { $arr = get_object_vars($obj); while (list($prop, $val) = each($arr)) echo "\t$prop = $val\n"; }
function print_methods($obj) { $arr = get_class_methods(get_class($obj)); foreach ($arr as $method) echo "\tfunction $method()\n"; }
function class_parentage($obj, $class) { if (is_subclass_of($GLOBALS[$obj], $class)) { echo "Object $obj belongs to class " . get_class($$obj); echo " a subclass of $class\n"; } else { echo "Object $obj does not belong to a subclass of $class\n"; } }
// ЯНГДЮМХЕ ЩЙГЕЛОКЪПНБ НАЗЕЙРНБ
$veggie = new Vegetable(true, "blue"); $leafy = new Spinach();
// ПЮЯОЕВЮРЙЮ ХМТНПЛЮЖХХ НА НАЗЕЙРЮУ echo "veggie: CLASS " . get_class($veggie) . "\n"; echo "leafy: CLASS " . get_class($leafy); echo ", PARENT " . get_parent_class($leafy) . "\n";
// ОНЙЮГЮРЭ ЯБНИЯРБЮ НАЗЕЙРЮ ЙКЮЯЯЮ Spinach echo "\nveggie: Properties\n"; print_vars($veggie);
// Х ЛЕРНДШ НАЗЕЙРЮ АЮГНБНЦН ЙКЮЯЯЮ Vegetable echo "\nleafy: Methods\n"; print_methods($leafy);
echo "\nParentage:\n"; class_parentage("leafy", "Spinach"); class_parentage("leafy", "Vegetable"); ?> </pre>
|
бЮФМН ГЮЛЕРХРЭ, ВРН Б ОПХБЕДЕММНЛ БШЬЕ ОПХЛЕПЕ НАЗЕЙР
$leafy -- ЩЙГЕЛОКЪП ЙКЮЯЯЮ
Spinach, ЙНРНПШИ МЮЯКЕДСЕР ЙКЮЯЯ
Vegetable,
БЯКЕДЯРБХЕ ВЕЦН ОНЯКЕДМХИ ОСМЙР ЯЙПХОРЮ БШБЕДЕР:
[...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable |
|