Einzelnen Beitrag anzeigen
  #1  
Alt 26.11.2013, 10:48:26
gino.d
Guest
 
Beiträge: n/a
Verständnisproblem OOP Klassen

Japp der Titel beschreibt so ungefähr das was in meinem Kopf vorgeht. Ich versuche das "Problem" mal zu beschreiben. Also es ist mehr ein Verständnis-Problem. Ich habe zwei Klassen. Nennen wir diese mal Class A und Class B...

Class A kann Daten speichern und diese zurückgeben.
Class B kann erstmal nix.

Von beiden Klassen wird eine Instanz erzeugt und ich übergebe Class B in der initClass() die Instanz von Class A.

Class B hat nun mehrere Methoden die alle mit der übergebenen Instanz arbeiten und dort Daten reinschreiben.

Jetzt kommt mein Verständnisproblem (sorry wenn das evtl. eine blöde Frage ist).

Die initClass() ruft 2 Methoden von Class B auf die alle etwas mit der Instanz von Class A machen. Zuletzt wird die Instanz von $A "returnt". Wie kann es sein das die Daten aus allen Methoden verfügbar sind?

DANKE schon mal im voraus.

BOAH ja geb ich zu, verwirrend geschrieben ich häng mal ein Beispiel an:

PHP-Code:
<?php

class {

    private 
$data;

    public function 
write($str) {

        
$this->data .= $str.PHP_EOL;
        
// end function
    
}

    public function 
display() {

        print 
$this->data;
        
// end function
    
}
    
// end class
}

    class 
{

        private 
$a;

        public function 
initClass($A) {

            
$this->$A;

            
$A->write('__construct von B');
            
// Ich hätte erwartet das nur "__construct von B" ausgegeben wird
            // Warum habe ich von jeder Klasse und Methode aus Zugriff auf alle Werte?

            
$this->StepA($A);
            
$this->StepB($A);
            return 
$A;
            
// end function
        
}

        private function 
StepA($A) {

            
$A->write('StepA');
            
// end function
        
}

        private function 
StepB($A) {

            
$this->a->write('StepB');
            
$C = new C($A);
            
// end function
        
}
        
// end class
    
}

    class 
{

        public function 
__construct($A) {

            
$A->write('StepC');
            
// end function
        
}
        
// end class
    
}

$A = new A();
$B = new B();

$return $B->initClass($A);
$return->display();

/**
 * display() erzeugt nun folgende Ausgabe
 *
 * __construct von B
 * StepA
 * StepB
 * StepC
 */
Mit Zitat antworten