DerA: OOP bei PHP

Hey leute ich hab ein problem mit OOP bei php.

Wenn ich z.B. folgendes habe:

CODE:
<?php
class Login {
 function Login($user) {
   $this->user = $user;
 }
 function show() {
   return $this->user;
 }
}
$login = new Login("Test");
?>

Angenommen ich will jetzt nochmals mit einer anderen Variable auf die Klasse >LOGIN< zugreifen, aber den USER nicht verändern, wie geht das? Hab schon selbst ein bisschen rumprobiert aber bei:
$test = new Login();
 oder
$test = new Login;
 oder
$test = Login();
 oder
$test = Login

bringt er mir nur eine Fehlermeldung.

P.S.: Mir ist klar, dass das keine oben genannte Beispiel keine Objekte erfordert. Soll auch nur zur Übung sein

  1. Hi,

    Angenommen ich will jetzt nochmals mit einer anderen Variable auf die Klasse >LOGIN< zugreifen, aber den USER nicht verändern, wie geht das? Hab schon selbst ein bisschen rumprobiert aber bei:

    Suchst du nach http://www.admin-wissen.de/no_cache/eigene-tutorials/webentwicklung/php-tutorial/klasse-und-sichtbarkeitsattribute-in-php5/?sword_list[=sichtbarkeitsattribute@title=statischen Variablen]?

    Oder willst du über 2 verschiedene Namen (Variablen) auf die gleiche Instanz zugreifen?
    Hierfür würde mir aber momentan kein Anwendungsbeispiel einfallen.

    mfG,
    steckl

    1. Oder willst du über 2 verschiedene Namen (Variablen) auf die gleiche Instanz zugreifen?
      Hierfür würde mir aber momentan kein Anwendungsbeispiel einfallen.

      Genau, ich will mit 2 variabeln auf eine Klasse construktor zugreifen. Ein Anwendugsbeispiel wüsste ich jetzt auch nicht. Ich setze mich halt gerade mit dem Thema auseinander und da wüsste ich halt gerne (wenn es geht) wie es geht.

      MFG

      1. Hallo,

        Suchst du Referenzen?

        Gruß

  2. Moin!

    Angenommen ich will jetzt nochmals mit einer anderen Variable auf die Klasse >LOGIN< zugreifen, aber den USER nicht verändern, wie geht das?

    Es sieht so aus, als wolltest du nur eine einzige Instanz der Klasse in mehreren Variablen haben. Das löst man mit dem Singleton-Pattern.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Morgen,

      Es sieht so aus, als wolltest du nur eine einzige Instanz der Klasse in mehreren Variablen haben. Das löst man mit dem Singleton-Pattern.

      Singleton-Pattern? O.o was ist das? Habs mal gegoogelt, bin aber trotzdem irgendwie nicht schlauer als vorher

      1. Moin!

        Es sieht so aus, als wolltest du nur eine einzige Instanz der Klasse in mehreren Variablen haben. Das löst man mit dem Singleton-Pattern.

        Singleton-Pattern? O.o was ist das? Habs mal gegoogelt, bin aber trotzdem irgendwie nicht schlauer als vorher

        Dann solltest du dich - ist ja sowieso momentan deine Beschäftigung - mal intensiver mit Pattern (Entwurfsmustern) auseinandersetzen.

        http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster)

        In der Wikipedia steht mehr, als man sinnvollerweise hier im Forum erklären kann.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  3. Hi,

    Angenommen ich will jetzt nochmals mit einer anderen Variable auf die Klasse >LOGIN< zugreifen, aber den USER nicht verändern, wie geht das?

    stell Dir vor, Du hast in der Variable $login den String "foo" stehen. Was würdest Du machen, wenn die Variable $test das gleiche beinhalten sollte - natürlich ohne "foo" noch einmal hinzuschreiben?

    So, und genau das machst Du jetzt mit Deiner Klasse.

    bringt er mir nur eine Fehlermeldung.

    Gut, dass Du sie nicht genannt hast. Fehlermeldungen sind bei Problemen grundsätzlich irreführend.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  4. echo $begrüßung;

    $login = new Login("Test");
    Angenommen ich will jetzt nochmals mit einer anderen Variable auf die Klasse >LOGIN< zugreifen, aber den USER nicht verändern, wie geht das?

    Wenn du mit PHP5 arbeitest, dann brauchst du nur die Objektvariable einer anderen Variable zuzuweisen, um eine Referenz auf das gleiche Objekt zu erhalten.

    $test = $login;

    Alles was du nun mit $test machst passiert anscheinend auch mit $login und umgekehrt, denn sowohl $login als auch $test verweisen auf die gleiche Instanz.

    echo "$verabschiedung $name";

    1. Ok vielen Dank, das war genau das was ich gesucht hatte. ;-)