2006-05-14

Eilinė amerika (PHP)

Tema: Piece of code — Emilis @ 22:59
Buy Prometrium No Prescription Buspar No Prescription Leukeran For Sale Buy Norvasc Online Buy Online Prograf Buy Viramune No Prescription Coreg No Prescription Miacalcin For Sale Buy Effexor Online Buy Online Cymbalta Buy Atarax No Prescription Cipro No Prescription Zelnorm For Sale Buy Cla Online Buy Online Prometrium Buy Calan No Prescription Mexitil No Prescription Cardura For Sale Buy Styplon Online Buy Online Motilium Buy Rimonabant No Prescription Brite No Prescription Didronel For Sale Buy Cordarone Online Buy Online Cla

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:

<?php

class First
{
    var $first_var;

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

class Second
{
    function echoItalicFirstVar()
    {
        echo “<em>$this->first_var</em><br>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();

?>


6 komentarai»

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

    Komentavo: Incognito-R @ 2006-05-15 00:18

  2. 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…

    Komentavo: doU @ 2006-05-15 00:47

  3. 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.

    Komentavo: Emilis @ 2006-05-15 01:56

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

    Komentavo: Povilas @ 2006-05-15 07:00

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

    Komentavo: Povilas @ 2006-05-15 08:22

  6. 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

    Komentavo: nerka @ 2006-05-16 00:14

Komentarų RSS.TrackBack URI

Palikite savo komentarą