PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Verständnisproblem OOP Klassen (http://www.selfphp.de/forum/showthread.php?t=25116)

gino.d 26.11.2013 10:48:26

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
 */


gino.d 26.11.2013 13:02:45

AW: Verständnisproblem OOP Klassen
 
Hat sich erledigt :)
Ich nenne es mal "eigene Unwissenheit" und *schäm* öfter mal Changelogs lesen.

Die Referenzierung benötigt ab PHP 5 kein & mehr vor dem Objekt da PHP automatisch eine Referenz erstellt.

Somit hat sich meine Verwirrung gelöst :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:15:43 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.