Christoph: Variablen an Class übergeben

Hallo zusammen,

ich habe ein kleines aber feines Problem :)

und zwar versuche ich 2 Variablen an eine Klasse zu übergeben (logid,passwort) komischer weise klappt das aber nicht :(
die Variablen kommen entweder in der Klasse oder in der function nicht an....

Kann mir da jemand weiterhelfen ?

Danke für eure Mühen

Gruss
Chris

Hier das Script:

<?

class login {

function login() {echo $this->logid; echo $this->passwort; }

}//end class

# An classe uebergeben
   $action = new login;

# Includen der Config.inc
   include("../adminc/admin/config.inc");

# Variablen holen
   $action->logid='1264';
   $action->passwort='test';

# Aufruf der gewaehlten funktion
   $action->login();

?>

  1. Hallo Chris,

    class login {

    function login() {echo $this->logid; echo $this->passwort; }

    }//end class

    nunja, Du solltest noch die Attribute in der klasse definieren:

    class login {

    var logid;
    var passwort;

    function login() {echo $this->logid; echo $this->passwort; }

    }//end class

    Wenn Du mit ordentlichem objektorientierten Stil arbeiten willst (und ich denke, den sollte man sich gleich angewöhnen), sollte man auch niemlas die Attribute von AUsserhalb der Klasse direkt zugreifen.
    Es sollte grundsätzlich eine Methode:

    function setLogid( pid )
    {
      $this->logid = pid;
    }

    und:

    function getLogid()
    {
      return $this->logid;
    }

    geben. Das Attribut wird von AUsserhalb der Klasse dann nur über diese Funktionen angesprochen,Du kannst in diesem Fall aber auch die LogId und Passwort gleichd em Konstruktor übergeben.
    Der Sinn ist Dir jetzt wahrscheinlich noch schleierhaft, aber irgendwann ist sonst  nicht mehr nachvollziehbar wer wann auf den Attributen arbeitet, und Änderungen an der Klasse werden sehr aufwändig und schwierig. AUch wenn Du irgendwelche Aktionen (z.B. Werüberprüfungen) einbauen willst, an die Du jetzt noch garnicht denkst, kannst DU das in einer Set Methode ganz einfach machen, wenn andere Klassen von aussen auf den Variablen rumpfuschen wird es fast unmöglich.

    Gruss

    Marko