kostenloser Webspace werbefrei: lima-city


OOP??

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lucas9991

    Kostenloser Webspace von lucas9991

    lucas9991 hat kostenlosen Webspace.

    ich bin in oop n00b, also bitte nich so komische w?rter XD


    jacr schrieb:
    Zum einen solletst du einen Konstruktor schreiben.
    Das macht sich immer gut. Und in den Kostruktor initalisiert du das Array.

    joa aber das is ja nich das prob

    Und dann weiss ich nicht was dein Problem ist.

    Jens

    es wird nichts ausgegeben :slant:


    sacred schrieb:
    nun ja, au?er das du die classe als die etwas andre funktion 'misbrauchst'^^

    ?hm ja.... :confused:


    w?re jetzt mal die frage was soll deine classe tun? was erwartest du als ergebniss?

    das alle benutzereingaben "sicher" werden
    also htmlspeiclchairs und mysql_query_string (oder wie auch immer ^^)


    und was liefert dein jetztiges 'beispiel' als eigebniss?
    (vielleicht mal var_dump auf die 'fertigen objekte' anwenden?)

    es kommt nichts....


    und dann will ich dir mal den stupps (wink mit dem zaunpfahl) in richtung 'mehrdimensionalesarray' geben bzw. rekrusion ;-)

    ich = oop n00b :blah:


    tja bleibt noch die frage unter welcher php version willst du denn oop verwenden/entwickeln? 4 oder 5 (ist ein kleener unterschied^^)

    lima hat php4 also php4 :slant:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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



  3. 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);
    ?>
  4. Ich w?rde jetzt mal ganz konkret sagen das wir Lukas nicht mit s?mtlichen Scripten zutexten wie Klassen angewendet werden, sondern er sollte sich erstmal vorstellen was Klassen ?berhaupt bezwecken.

    Aber wie ich das jetzt erkl?ren soll wei? ich auch gerade nicht *gr?bel*.

    Kleine Frage an die PHP Profis:

    Sind die 4 Grundpfeiler der objektorientierten Prorgammierung

    - Vererbung
    - Kapselung
    - Verbergen von Daten
    - Polymorphie

    in PHP auch gegeben?

    Gru? Tobi
  5. 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.
  6. 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:
  7. 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!