T-Rex: Variable an eine Klasse binden

Beitrag lesen

Mein Ansatz ist ähnlich wie der von dedlfix, jedoch benutze ich eine fertige Klasse bzw. ein fertiges Klassenmodel: ArrayObject

Das ganze sieht dann ungefähr so aus

class cHotti extends ArrayObject  
{  
    public function offsetSet( $key, $value )  
    {  
        if( $key == "default" )  
        {  
            //--- mach was  
        }  
        return parent::offsetSet( $key, $value );  
    }  
}

Aufgerufen wir das ganze mit

  
$objHotti = new cHotti();  
$objHotti["default"] = "meine eingabe";  

Also wie ein normales Array. Jedoch kann man die Klasse Hotti um Methoden erweitern. So könnte man dem ganzen z.B. auch eine save Methode geben, welche die Daten in die Datenbank speichert bzw. wiederum eine Klasse initialisiert, die das übernimmt.
Ein weiterer Vorteil ist, dass das ganze Konstrukt als normales Array betrachtet werden kann. Man kann es mittels foreach durchlaufen. Wer es komplett Objekt orientiert mag kann aber auch die ArrayIterator Klasse benutzen.

Du kannst auch den get beeinflussen "offsetGet" oder die Methode die bei einem isset($objHotti['default']) aufgerufen wird -> offsetExists.

Seit dem ich mit dem Teil arbeite wurde mein Code viel effizienter. Kleiner Haken an der Sache ist, dass man den Code etwas mehr "magic" gestaltet und beim Debuggen eventuell Probleme bekommt.

Hoffe ich konnte helfen.

Gruß
Deutsches Finale? Gibt's jedes Jahr im DFB Pokal und da freut sich niemand.
T-Rex