Eilinė amerika (PHP)

2006-05-15 01:59

Paskutiniu metu man labai norėjosi multiple inheritance su PHP.

Tai tiek užkniso, kad prisėdau, pasibandžiau ir atradau, kad bent jau metodus skolintis (ko man iš esmės ir reikėjo) iš ne vienos klasės galima gana paprastai.

Skriptukas pasibandymui jei kam įdomu bus ir pravers:

```break <?php

class First { var $first_var;

function echoVar()
{
    echo "$this->first_var<br>n";
} }

class Second { function echoItalicFirstVar() { echo “$this->first_var
n”; }

function echoBoldMyVar()
{
    echo "<strong>$this->my_var</strong><br>n";
} }

class MyClass extends First { var $my_var;

function echoMyVar()
{
    echo "$this->my_var<br>n";
}

// Methods that operate on MyClass
// object attributes from Second class:
function echoItalicFirstVar() { Second::echoItalicFirstVar(); }
function echoBoldMyVar() { Second::echoBoldMyVar(); } }

$obj = &new MyClass();

$obj->first_var = “This is first var.”; $obj->my_var = “This is my var.”;

$obj->echoVar(); $obj->echoItalicFirstVar(); $obj->echoMyVar(); $obj->echoBoldMyVar();

?> ```

Komentarai

Incognito-R

bet tai cia kazkaip nesamoningai. kodel ju nereikia paskelbti statiniais metodais, o imi ir naudoji?

doU

Manau, nu į multiple inherintance kaip ir nelabai panašu... (ale paveldimi tik metodai, o atributų kaip ir nėra...) Beje kokias problemas reikėjo spręsti naudojant multiple inherintance? O kad PHP 4 taip interpretuoja static metodus t.y. žiauru...

Emilis

Ramiai ramiai moralės sergėtojai, dorovės sargai... šits bajerius padeda, kad nebereiktų rašyt to pačio kodo keliose vietose.

Tai laikau, kad visgi gėris. Nors gal idėjiškai ir neteisinga pagal gražius modelius.

Povilas

na sita tikrai sunku pavadint multiple inheritance :) ir ne multiple inheritance turbut tau ir reikejo

Povilas

va sitas turbut netgi paprastesnis variantas butu :)
http://povilas.visada.lt/27-multiple-inheritance-in-php

nerka

reiktu veikti multiple inheritance.
Ir naujose kalbose to norima atsisakyti (atsisakoma).
Tiesa sakant maciau tai tik C++'e :)
O javoj ir kitose tai igyvendinama per Mixin'us ar interfeisus

Komentuoti šio įrašo nebegalima. Komentarų sistema išjungta.