IX. тСМЙЖХХ ПЮАНРШ Я йКЮЯЯЮЛХ/нАЗЕЙРЮЛХ

бБЕДЕМХЕ

мХФЕНОХЯЮММШЕ ТСМЙЖХХ ОНГБНКЪР БЮЛ ОНКСВХРЭ ХМТНПЛЮЖХЧ Н ЙКЮЯЯЮУ Х ЩЙГЕЛОКЪПЮУ НАЗЕЙРНБ. бШ ЛНФЕРЕ ОНКСВХРЭ ХЛЪ ЙКЮЯЯЮ ХГ ЩЙГЕЛОКЪПЮ НАЗЕЙРЮ ПЮБМН ЙЮЙ Х БЯЕ ЕЦН ЯБНИЯРБЮ Х ЛЕРНДШ. хЯОНКЭГСЪ ЩРХ ТСМЙЖХХ, БШ ЯЛНФЕРЕ СЯРЮМНБХРЭ МЕ РНКЭЙН ОПХМЮДКЕФМНЯРЭ НАЗЕЙРЮ Й ЙНМЙПЕРМНЛС ЙКЮЯЯС, МН Х НОПЕДЕКХРЭ МЮЯКЕДНБЮМХЕ (Й ОПХЛЕПС ЙЮЙНИ ЙКЮЯЯ МЮЯКЕДСЕР ЙКЮЯЯ ДЮММНЦН НАЗЕЙРЮ).

рПЕАНБЮМХЪ

щРХ ТСМЙЖХХ БЯЕЦДЮ ДНЯРСОМШ.

сЯРЮМНБЙЮ

дКЪ ХЯОНКЭГНБЮМХЪ ЩРХУ ТСМЙЖХИ МЕ РПЕАСЕРЯЪ ОПНБЕДЕМХЕ СЯРЮМНБЙХ, ОНЯЙНКЭЙС НМХ ЪБКЪЧРЯЪ ВЮЯРЭЧ ЪДПЮ 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

Содержание
call_user_method_array --  бШГШБЮЕЛ ЛЕРНД НАЗЕЙРЮ Я ЛЮЯЯХБНЛ ОЮПЮЛЕРПНБ [СЯРЮПЕБЬЕЕ]
call_user_method --  бШГШБЮЕР ЛЕРНД СЙЮГЮММНЦН НАЗЕЙРЮ [СЯРЮПЕБЬЕЕ]
class_exists -- оПНБЕПЪЕР АШК КХ НАЗЪБКЕМ ЙКЮЯЯ
get_class_methods -- бНГБПЮЫЮЕР ЛЮЯЯХБ ХЛЕМ ЛЕРНДНБ ЙКЮЯЯЮ
get_class_vars --  бНГБПЮЫЮЕР ЛЮЯЯХБ ЯБНИЯРБ ЙКЮЯЯЮ Я ХУ ХМХЖХЮКХГЮЖХНММШЛХ ГМЮВЕМЪЛХ
get_class -- бНГБПЮЫЮЕР ХЛЪ ЙКЮЯЯЮ Й ЙНРНПНЛС ОПЕМЮДКЕФХР НАЗЕЙР
get_declared_classes -- бНГБПЮЫЮЕР ЛЮЯЯХБ Я ХЛЕМЮЛХ НАЗЪБКЕММШУ ЙКЮЯЯНБ
get_declared_interfaces --  бНГБПЮЫЮЕР ЛЮЯЯХБ БЯЕУ НАЗЪБКЕММШУ Б РЕЙСЫЕИ ХРЕПЮЖХХ ХМРЕПТЕИЯНБ.
get_object_vars -- бНГБПЮЫЮЕР ЮЯЯНЖХЮРХБМШИ ЛЮЯЯХБ ЯБНИЯРБ Х ГМЮВЕМХИ НАЗЕЙРЮ
get_parent_class -- бНГБПЮЫЮЕР ХЛЪ ЙКЮЯЯЮ АЮГНБНЦН ДКЪ НАЗЕЙРЮ ХКХ ЙКЮЯЯЮ
is_a --  бНГБПЮЫЮЕР TRUE ЕЯКХ НАЗЕЙР ОПЕМЮДКЕФХР ЙКЮЯЯС ХКХ ЪБКЪЕРЯЪ НДМХЛ ХГ ЕЦН МЮЯКЕДНБЮРЕКЕИ.
is_subclass_of --  бНГБПЮЫЮЕР TRUE ЕЯКХ НАЗЕЙР ЪБКЪЕРЯЪ ЩЙГЕЛОКЪПНЛ ЙКЮЯЯЮ, МЮЯКЕДСЧЫЕЦН ДЮММШИ.
method_exists -- оПНБЕПЪЕР ЯСЫЕЯРБСЕР КХ ЛЕРНД Б ДЮММНЛ ЙКЮЯЯЕ

HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ