kostenloser Webspace werbefrei: lima-city


OOP??

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess



  1. Und dann weiss ich nicht was dein Problem ist.

    es wird nichts ausgegeben :slant:


    Dann schau mal hier:
    http://jacr.de/test/Daten.php?test=t

    Und was macht er jetzt nicht????

    Das ist der Code:
    <?
    class Daten
    {
    var $vars= array();
    function kontrolle($was)
    {
    foreach($was as $_var_name => $_var_inhalt)
    {
    $this -> vars[$_var_name] = $_var_inhalt;
    }
    return $this -> vars;
    }
    }
    $get_vars = array();
    $post_vars = array();
    $session_vars = array();
    $cookie_vars = array();

    $daten= new Daten;

    $get_vars = $daten-> kontrolle($_GET);
    $post_vars = $daten-> kontrolle($_POST);
    //$session_vars = $daten-> kontrolle($_SESSION);
    $cookie_vars = $daten-> kontrolle($_COOKIE);
    print_r($cookie_vars);
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s****d

    ja, in PHP gibt es vererbung
    in php 4 gibt es nur schwache kapselung (was ja ein verbergen von daten innehat^^) erst mit php5 sind 'public', 'protected' und 'private' hinzugekommen

    polymorphie da w?rde ich sagen jein. wenn man ganz von der m?glichkeit der abstrakten klassen absieht: nein

    dazu sei wohl angemerkt, dass php keine 'wirkliche' oop sprache ist. zwer ist man mit php 5 sehr stark in die richtige richtug gegangen aber am 'ende' ist man noch nicht.
  4. Ain g?s??gn?t?s OO-st?rf??st!

    Ich w?rde mal sagen "schwache Kapselung" ist f?r PHP4 sehr euphemistisch ausgedr?ckt: Da wird ?berhaupt nichts gekapselt: Man kann auf objekt-interne Variablen zugreifen, alle Methoden vom Hauptprogramm aus aufrufen usw. Das oo-typische "Black-Box-Prinzip" ist also ?berhaupt nicht gegeben. Wenn man sich aber an die Regeln h?lt, und z.B. so tut, als ob man nicht auf die objekt-internen Variablen zugreifen kann, stellt das weniger ein Problem dar. Um gut nutzbaren Code zu erzeugen, sollte man sowieso darauf verzichten, Variablen nach au?en hin sichtbar (PUBLIC) zu machen. Eigenschaften eines Objekts sollten immer durch Methoden abgefragt werden. Also, um bei meinem Beispiel zu bleiben:
    nicht:

    $welche_farbe_hat_die_miez = $meine_katze->fell;
    sondern:
    $welche_farbe_hat_die_miez = $meine_katze->fellfarbe();

    In der Klassendefinition:
    function fellfarbe() {
    return($this->fell);
    }

    ?ndert man n?mlich die Eigenschafts-Definition der Klasse, k?nnte die Variable $this->fell verschwinden und durch bessere Definitionen ersetzt werden:

    var $fellfarbe; // z.B. grau, orange, schwarz
    var $fellart; // z.B. einfarbig, gestreift, gepunktet

    Alle Methoden und Codebestandteile des Hauptprogramms, die bisher die Variable $this->fell direkt abfragten, m?ssten jetzt ge?ndert werden. Bei der "Methoden-Methode" dagegen, muss nur die eine Methode abge?ndert werden:

    function fellfarbe() {
    return($this->fell);
    }

    Der Rest bleibt wie gehabt. Das erm?glicht zum Beispiel auch abw?rtskompatibles Programmieren.

    F?r Methoden gibt es eine M?glichkeit, private Methoden auch in PHP zu erzeugen, d.h. den Aufruf nur innerhalb von anderen Methoden des gleichen Objektes zu erm?glichen (f?r 5 Gulden verrate ich das aber nicht :wink:).

    Das PHP nur eine um OO-Eigenschaften erweiterte Sprache ist, ist nicht weiter tragisch, C++ geht es da genau so (auch wenn viele das nicht wissen). Selbst in Java kann man noch nach der alten (prozeduralen) Methode arbeiten.

    Wer echte objektorientierte Sprachen benutzen will, sollte sich besser mit SmallTalk oder Ruby besch?ftigen.

    Nebenbei bemerkt: Man kann auch ohne OO-Funktionalit?t objektorientiert programmieren. Das Betriebssystem des Amiga (wei? noch irgendwer, was das f?r ein Computer ist?) hat seit der Version 1.0 (irgendwann in den 1980-ern) einen objektorientierten Kern. Nur hie?en damals die Begriffe eben anders: Statt Objekt sagte man Library.

    M?G
    alopex

    P.S. Es freut mich, dass sich hier wenigstens ein paar oo-Interessierte eingefunden haben. :smile:
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!